167 votes

Comment passer une classe en tant que paramètre en Java ?

Existe-t-il un moyen de passer une classe comme paramètre en Java et de déclencher certaines méthodes de cette classe ?

void main()
{
    callClass(that.class)
}

void callClass(???? classObject)
{
    classObject.somefunction
    // or 
    new classObject()
    //something like that ?
}

J'utilise Google Web Toolkit et il ne prend pas en charge la réflexion.

2voto

zeuros Points 51

L'ajout de <T> T comme type de retour a fonctionné pour moi. Ex avec json deserialize

 public static <T> T fromJson(String json, Class<T> classOfT){
     return gson().fromJson(json, classOfT);
 }

1voto

Jorel Points 108

Je ne suis pas sûr de ce que vous essayez d'accomplir, mais vous devriez peut-être considérer que réussir un cours n'est peut-être pas ce que vous devez vraiment faire. Dans de nombreux cas, la gestion d'une classe comme celle-ci est facilement encapsulée dans un modèle d'usine d'un certain type et l'utilisation de ce modèle se fait par l'intermédiaire d'une interface : http://today.java.net/pub/a/today/2005/03/09/factory.html

L'utilisation d'une classe dans une factory peut être réalisée de différentes manières, notamment en ayant un fichier de configuration qui contient le nom de la classe qui implémente l'interface requise. La fabrique peut alors trouver cette classe dans le chemin des classes et la construire comme un objet de l'interface spécifiée.

0voto

Gursel Koca Points 8541

Comme vous l'avez dit GWT ne supporte pas la réflexion. Vous devriez utiliser la liaison différée au lieu de la réflexion, ou une bibliothèque tierce telle que gwt-ent pour le support de réflexion à la couche gwt.

-1voto

Harold Sota Points 2707

Se ces : http://download.oracle.com/javase/tutorial/extra/generics/methods.html

Voici l'explication des méthodes du modèle.

-1voto

Marcus Gründler Points 369

Jetez un coup d'œil au tutoriel sur la réflexion et à l'API de réflexion de Java :

https://community.oracle.com/docs/DOC-983192 Entrez la description du lien ici

y

http://docs.oracle.com/javase/6/docs/api/java/lang/Class.html

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