[英]How to determine by reflection if a Method returns 'void'
我有一个java.lang.reflect.Method
对象,我想知道它的返回类型是否为void
。
我检查了Javadocs,并且有一个返回Class对象的getReturnType()
方法。 问题是,如果方法无效,他们不会说返回类型是什么。
谢谢!
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
method.getReturnType()==void.class √
method.getReturnType()==Void.Type √
method.getReturnType()==Void.class X
void.class
method.getReturnType()
返回void.class
/ Void.TYPE
。
它返回java.lang.Void.TYPE
。
还有另一种可能不那么传统的方式:
public boolean doesReturnVoid(Method method) { if (void.class.equals(method.getReturnType())) return true; }
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.