java - method - Cómo determinar por reflexión si un Método devuelve ''vacío''
java reflection invoke method without parameters (5)
Tengo un objeto java.lang.reflect.Method
y me gustaría saber si el tipo de devolución es void
.
Javadocs los Javadocs y hay un método getReturnType()
que devuelve un objeto Class. Lo que pasa es que no dicen cuál sería el tipo de devolución si el método es nulo.
¡Gracias!
Devuelve java.lang.Void.TYPE
.
Hay otra forma, quizás menos convencional:
public boolean doesReturnVoid(Method method) { if (void.class.equals(method.getReturnType())) return true; }
method.getReturnType()
devuelve void.class
/ Void.TYPE
.
if( method.getReturnType().equals(Void.TYPE)){
out.println("It does");
}
Muestra rápida:
$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