_Java.lang.reflect.Method
_オブジェクトがあり、戻り型がvoid
かどうかを知りたいです。
Javadocs をチェックしました。Classオブジェクトを返すgetReturnType()
メソッドがあります。問題は、メソッドが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
method.getReturnType()==void.class √
method.getReturnType()==Void.Type √
method.getReturnType()==Void.class X
method.getReturnType()
はvoid.class
/Void.TYPE
を返します。
Java.lang.Void.TYPE
を返します。
別の、おそらくあまり一般的ではない方法があります:
public boolean doesReturnVoid(Method method) { if (void.class.equals(method.getReturnType())) return true; }