68 votes

Comment déterminer par réflexion si une méthode retourne 'vide'

J'ai un objet java.lang.reflect.Method et j'aimerais savoir si son type de retour est void .

J'ai vérifié les 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!

106voto

OscarRyz Points 82553
 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
 

10voto

method.getReturnType() renvoie void.class Void.TYPE .

8voto

James Keesey Points 1124

Il retourne java.lang.Void.TYPE .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X