Reflection peut charger dynamiquement des classes, instancier des objets et appeler des méthodes. Prenons maintenant l’exemple suivant pour expliquer.
1. Chargez la classe.
Class clazz = Class.forName("java.lang.String"); //Ce code obtient un objet de classe de la classe String. Le paramètre remplit le nom du package.
Si vous utilisez URLClassLoader, vous pouvez charger le package jar local ou distant et obtenir l'objet de classe spécifique via la méthode loadclass.
2. Instancier des objets.
Si l'objet est instancié via le constructeur par défaut, nous pouvons utiliser la méthode suivante de l'objet de classe pour obtenir un objet, tel que
clazz..newInstance();
Si en apportant Pour instancier un objet à l'aide du constructeur paramétré, vous pouvez utiliser le code suivant :
Constructor> myConstructor = myClass.getConstructor(parameterTypes);//Obtenir un objet constructeur.
Où ParameterTypes est Class>... ParameterTypes, tels que String.class, int.class, etc. Récupérez ensuite l'objet instancié via l'objet constructeur :
myConstructor.newInstance("xxx",123); remplissez les paramètres de construction spécifiques dans le constructeur.
Trois, appelez la méthode.
Méthode mezod = clazz.getMethod(methodName, ParameterTypes); Vous pouvez obtenir l'objet de la classe méthode, puis nous pouvons exécuter la méthode via la méthode d'invocation de mezod.
mezod.invoke(obj,"xxx",123);//Le premier paramètre est l'objet initiateur de cette méthode. Si null est renseigné, cela signifie que la méthode statique est appelée.
L'article est reproduit à partir de CSDN.NET. S'il y a des problèmes de droits d'auteur, veuillez nous contacter pour le supprimer
Ce qui précède est le contenu d'un didacticiel de réflexion JAVA très simple. contenu associé, veuillez faire attention au site Web PHP chinois (m.sbmmt.com) !