1. ホーム
  2. java

メソッドが'void'を返すかどうかをリフレクションで判断する方法

2023-09-02 08:15:34

質問

私は java.lang.reflect.Method オブジェクトがあり、その戻り値の型が void .

を確認したところ Javadocs を確認すると、そこには getReturnType() メソッドがあり、Classオブジェクトを返します。メソッドがvoidの場合、戻り値の型が何であるかは書かれていないことです。

ありがとうございます!

どのように解決するのですか?

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