如何通过反射确定方法是否返回“void”

2022-08-31 12:50:56

我有一个对象,我想知道它的返回类型是否是。java.lang.reflect.Methodvoid

我已经检查了Javadocs,并且有一个返回Class对象的方法。问题是,如果该方法是无效的,他们不会说返回类型是什么。getReturnType()

谢谢!


答案 1
if( method.getReturnType().equals(Void.TYPE)){
    out.println("It does");
 }

快速示例:

$cat X.java  

import java.lang.reflect.Method;


public class X {
    public static void main( String [] args ) {
        for( Method m : X.class.getMethods() ) {
            if( m.getReturnType().equals(Void.TYPE)){
                System.out.println( m.getName()  + " returns void ");
            }
        }
    }

    public void hello(){}
}
$java X
hello returns void 
main returns void 
wait returns void 
wait returns void 
wait returns void 
notify returns void 
notifyAll returns void 

答案 2
method.getReturnType()==void.class     √

method.getReturnType()==Void.Type      √

method.getReturnType()==Void.class     X