如何通过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; }