J'ai un objet Java.lang.reflect.Method
et j'aimerais savoir si son type de retour est void
.
J'ai vérifié le Javadocs et il existe une méthode getReturnType()
qui renvoie un objet Class. Le fait est qu'ils ne disent pas quel serait le type de retour si la méthode est vide.
Merci!
if( method.getReturnType().equals(Void.TYPE)){
out.println("It does");
}
Échantillon rapide:
$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()
renvoie void.class
/Void.TYPE
.
Il retourne Java.lang.Void.TYPE
.
Il existe un autre moyen, peut-être moins conventionnel:
public boolean doesReturnVoid(Method method) {
if (void.class.equals(method.getReturnType()))
return true;
}