繁体   English   中英

如何通过反射确定Method是否返回'void'

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM