Comment appeler une méthode en utilisant la réflexion en Java
Dec 23, 2023 am 08:18 AMComment utiliser la réflexion pour appeler des méthodes en Java
La réflexion est une fonctionnalité importante du langage Java. Elle peut obtenir dynamiquement des informations sur la classe et faire fonctionner les membres de la classe au moment de l'exécution, y compris les champs, les méthodes, les constructeurs, etc. L'utilisation de la réflexion nous permet de manipuler les membres d'une classe sans connaître la classe spécifique au moment de la compilation, ce qui nous permet d'écrire du code plus flexible et plus polyvalent. Cet article explique comment utiliser la réflexion pour appeler des méthodes en Java et donne des exemples de code spécifiques.
1. Obtenir l'objet Class de la classe
En Java, pour utiliser la réflexion pour appeler une méthode, vous devez d'abord obtenir l'objet Class de la classe. Vous pouvez obtenir l'objet Class des manières suivantes :
- Utilisez l'attribut class de la classe : classname.class
Par exemple, pour obtenir l'objet Class de la classe String, vous pouvez utiliser le code suivant :
Class stringClass = String.class; - Utilisez la méthode getClass() de l'objet
Par exemple, pour obtenir l'objet Class d'un objet chaîne, vous pouvez utiliser le code suivant :
String str = "Bonjour";
Class strClass = str. getClass(); - Utilisez le statique de la méthode de classe Class pourName()
Par exemple, pour obtenir l'objet Class de la classe String, vous pouvez utiliser le code suivant :
Class stringClass = Class.forName("java.lang .String");
2. Appelez la méthode
pour obtenir la classe de la classe. Une fois l'objet créé, vous pouvez utiliser la réflexion pour appeler les méthodes de la classe. Tout d’abord, nous devons récupérer l’objet de la méthode. Vous pouvez obtenir l'objet de la méthode des deux manières suivantes :
- Utilisez la méthode getMethod() de la classe Class pour obtenir la méthode spécifiée
Cette méthode nécessite que le nom et le type de paramètre de la méthode soient transmis, et renvoie un objet méthode. Par exemple, le code suivant obtient la méthode length() de la classe String :
Method lengthMethod = stringClass.getMethod("length"); - Utilisez la méthode getMethods() de la classe Class pour obtenir toutes les méthodes publiques
Cette méthode renvoie une liste contenant toutes les méthodes publiques Tableau de méthodes. Par exemple, le code suivant obtient toutes les méthodes publiques de la classe String :
Method[] METHODS = stringClass.getMethods();
Après avoir obtenu l'objet de la méthode, vous pouvez utiliser la méthode Invocation() de la classe Method. pour appeler la méthode. La méthode Invoke() doit transmettre l'objet auquel appartient la méthode ainsi que les paramètres de la méthode, et renvoie la valeur de retour de la méthode. Par exemple, le code suivant appelle la méthode length() de la classe String et renvoie la valeur de retour de la méthode :
String str = "Hello";
Method lengthMethod = stringClass.getMethod("length"); (int) lengthMethod .invoke(str);
System.out.println(length);
Ensuite, un exemple de code complet est donné pour montrer comment utiliser la réflexion pour appeler des méthodes en Java :
import java.lang.reflect.Method; public class ReflectionExample { public static void main(String[] args) throws Exception { // 获取String类的Class对象 Class stringClass = String.class; // 获取String类的length()方法 Method lengthMethod = stringClass.getMethod("length"); // 创建一个字符串对象 String str = "Hello, Reflection!"; // 调用length()方法,并输出返回值 int length = (int) lengthMethod.invoke(str); System.out.println("字符串的长度为:" + length); } }
Grâce à la réflexion, vous pouvez obtenir dynamiquement des informations sur la classe et faire fonctionner les membres de la classe au moment de l'exécution. Cet article explique comment utiliser la réflexion pour appeler des méthodes en Java et donne des exemples de code spécifiques. J'espère qu'à travers l'introduction de cet article, les lecteurs pourront mieux comprendre et maîtriser 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!

Article chaud

Outils chauds Tags

Article chaud

Tags d'article chaud

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Générateur de nombres aléatoires en Java

Questions d'entretien chez Java Spring

Break or Return of Java 8 Stream Forach?
