Les méthodes d'appel couramment utilisées dans la réflexion Java nécessitent des exemples de code spécifiques
Introduction :
La réflexion Java est une fonctionnalité puissante du langage Java, qui nous permet d'obtenir dynamiquement des informations sur les classes et d'exploiter les classes au moment de l'exécution. Propriétés, méthodes, constructeurs, etc. . En Java, en utilisant la réflexion, nous pouvons réaliser de nombreuses fonctions, telles que la création dynamique d'objets, l'appel de méthodes et la modification de propriétés privées. Cet article présentera les méthodes d'appel couramment utilisées en réflexion en Java et fournira des exemples de code spécifiques.
Obtenir l'objet Class
Avant d'utiliser la réflexion, vous devez d'abord obtenir l'objet Class de la classe sur laquelle opérer. L'objet Class peut être obtenu des trois manières suivantes :
1.1 En utilisant la méthode getClass() de l'objet
Par exemple, si nous avons un objet nommé "exemple", nous pouvons utiliser le code suivant pour obtenir son objet Class :
Class<?> clazz = example.getClass();
1.2 Utilisation de la syntaxe de classe .
Si nous utilisons le nom de la classe directement pour obtenir l'objet Class, nous pouvons utiliser la syntaxe suivante :
Class<?> clazz = Example.class;
1.3 Utilisez la méthode Class.forName()
Si nous ne connaissons que le nom de la classe. , nous pouvons utiliser le code suivant pour obtenir l'objet Class :
Class<?> clazz = Class.forName("com.example.Example");
Créer des objets
Utilisez la réflexion pour créer dynamiquement des objets au moment de l'exécution. Un exemple d'objet peut être créé par le code suivant :
Example example = (Example) clazz.getDeclaredConstructor().newInstance();
Ici, nous supposons que Exemple est le nom de la classe que nous voulons créer.
Obtention des variables membres d'une classe
Vous pouvez utiliser la réflexion pour obtenir les variables membres d'une classe. Le code suivant montre comment obtenir une variable membre privée d'une classe et modifier sa valeur :
Field field = clazz.getDeclaredField("privateField"); field.setAccessible(true); field.set(example, "new value");
Dans l'exemple, "privateField" est une variable membre privée de la classe Exemple. Tout d’abord, récupérez l’objet Field de la variable membre en appelant la méthode getDeclaredField(), puis définissez-le pour qu’il soit accessible et enfin utilisez la méthode field.set() pour modifier sa valeur.
Appel de méthodes
Vous pouvez utiliser la réflexion pour appeler les méthodes d'une classe. Voici un exemple de code qui montre comment appeler la méthode publique de la classe :
Method method = clazz.getMethod("publicMethod", String.class); method.invoke(example, "parameter");
Dans l'exemple, "publicMethod" est une méthode publique de la classe Exemple. Tout d’abord, récupérez l’objet Method de la méthode en appelant la méthode getMethod(), puis utilisez la méthode method.invoke() pour appeler la méthode.
Appel de méthodes privées
Par réflexion, nous pouvons également appeler des méthodes privées d'une classe. Le code suivant montre comment appeler une méthode privée d'une classe :
Method method = clazz.getDeclaredMethod("privateMethod"); method.setAccessible(true); method.invoke(example);
Dans l'exemple, "privateMethod" est une méthode privée de la classe Exemple. Tout d’abord, récupérez l’objet Method de la méthode en appelant la méthode getDeclaredMethod(), puis rendez-le accessible et enfin utilisez la méthode method.invoke() pour appeler la méthode.
Résumé :
Grâce à la réflexion, nous pouvons obtenir dynamiquement des informations sur la classe et exploiter les attributs de classe, les méthodes, les constructeurs, etc. au moment de l'exécution. Cet article présente les méthodes d'appel couramment utilisées en réflexion en Java et fournit des exemples de code spécifiques. L'utilisation de la réflexion peut apporter une grande commodité à notre développement, mais une utilisation excessive de la réflexion peut également entraîner des problèmes de lisibilité et de performances du code, une attention particulière est donc nécessaire lors de l'utilisation de la réflexion.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!