Existe-t-il un moyen de passer la classe en tant que paramètre dans 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.
java
class
gwt
parameters
Michael Dorner
la source
la source
Pour appeler la méthode, vous l'appelez de cette façon:
la source
Construisez votre méthode pour l'accepter-
Appelez la méthode-
Vous pouvez également restreindre le type de classe, par exemple, c'est l'une des méthodes d'une bibliothèque que j'ai créée -
Pour plus d'informations, recherchez Reflection and Generics.
la source
Utilisation
A
Class
est également un objet Java, vous pouvez donc y faire référence en utilisant son type.En savoir plus à ce sujet dans la documentation officielle .
la source
Ce genre de chose n'est pas facile. Voici une méthode qui appelle une méthode statique:
Mise à jour: Attendez, je viens de voir la balise gwt sur la question. Vous ne pouvez pas utiliser la réflexion dans GWT
la source
Je ne suis pas sûr de ce que vous essayez d'accomplir, mais vous voudrez peut-être considérer que réussir un cours n'est peut-être pas ce que vous devez vraiment faire. Dans de nombreux cas, traiter une classe comme celle-ci est facilement encapsulé dans un modèle d'usine d'un certain type et l'utilisation de cela se fait via une interface. voici l'un des dizaines d'articles sur ce modèle: http://today.java.net/pub/a/today/2005/03/09/factory.html
l'utilisation d'une classe dans une fabrique peut être accomplie de différentes manières, notamment en ayant un fichier de configuration contenant le nom de la classe qui implémente l'interface requise. Ensuite, la fabrique peut trouver cette classe à partir du chemin de classe et la construire en tant qu'objet de l'interface spécifiée.
la source
Comme vous l'avez dit, GWT ne prend pas en charge la réflexion. Vous devez utiliser la liaison différée au lieu de la réflexion, ou une bibliothèque tierce telle que gwt-ent pour la prise en charge de la réflexion au niveau de la couche gwt.
la source
Consultez-les: http://download.oracle.com/javase/tutorial/extra/generics/methods.html
voici l'explication des méthodes modèles.
la source
Jetez un œil au tutoriel de réflexion et à l'API de réflexion de Java:
https://community.oracle.com/docs/DOC-983192 entrez la description du lien ici
et
http://docs.oracle.com/javase/6/docs/api/java/lang/Class.html
la source
Classez comme paramater. Exemple.
Trois classes:
-
-
Dans la classe Terminal, la méthode hackCar () prend la classe TestCar comme paramètre.
la source