如何通过reflection来判断一个方法是否返回“void”

我有一个java.lang.reflect.Method对象,我想知道它是否返回types是void

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

谢谢!

 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 

void.class method.getReturnType()返回void.class / Void.TYPE

它返回java.lang.Void.TYPE

 method.getReturnType()==void.class √ method.getReturnType()==Void.Type √ method.getReturnType()==Void.class X 

还有另外一种传统的方式:

public boolean doesReturnVoid(Method method) { if (void.class.equals(method.getReturnType())) return true; }