La fonction Reflection en Java est une technologie de programmation avancée qui peut obtenir des informations de classe et les modifier dynamiquement au moment de l'exécution. Les fonctions de réflexion nous permettent d'utiliser ses objets ainsi que les propriétés et méthodes de la classe à laquelle ils appartiennent sans connaître les informations complètes sur la classe. Dans cet article, nous apprendrons comment effectuer des opérations de réflexion à l'aide de la fonction Reflection en Java.
1. Concepts de base du mécanisme de réflexion
Le mécanisme de réflexion fait référence à un mécanisme qui obtient dynamiquement les informations du fichier de classe (fichier .class) pendant le processus de programmation. Il permet d'exploiter ces informations de fichier de classe au moment de l'exécution, y compris la lecture des méthodes de classe, des propriétés, des constructeurs, l'obtention et l'appel de méthodes, etc.
En général, le mécanisme de réflexion est le langage de programmation Java qui détermine le type d'un objet au moment de l'exécution, nous permettant de vérifier la classe à laquelle appartient un objet au moment de l'exécution et d'analyser ses caractéristiques et son comportement.
Le principal avantage du mécanisme de réflexion est qu'il peut implémenter du code générique qui peut être appliqué à toutes les classes Java sans connaître les informations complètes sur la classe réelle. Cela permet aux programmeurs de créer, analyser et utiliser des objets, des propriétés et des méthodes dans les classes par réflexion.
2. Obtenir l'objet Class
La première étape de la réflexion consiste à obtenir l'objet Class de la classe, ce qui peut être réalisé des trois manières suivantes :
Cela utilise le mécanisme de réflexion. La méthode la plus courante. Nous pouvons utiliser la méthode Class.forName() en réflexion pour obtenir l'objet Class de la classe. Cette méthode doit passer le nom complet d'une classe, par exemple :
Class clazz = Class.forName("java.lang.String");
Nous pouvons également utiliser directement le mot-clé class name.class pour obtenir l'objet Class de la classe, par exemple :
Class clazz = String.class;
Nous pouvons utiliser la méthode getClass() de l'objet pour obtenir l'objet Class de la classe à laquelle l'objet appartient, par exemple exemple :
String str = "Hello, World!"; Class clazz = str.getClass();
3. Obtenir les informations sur la classe
Obtenir la classe Les informations sont l'opération la plus basique en réflexion, qui nous permet d'obtenir les méthodes, propriétés, constructeurs et autres informations de la classe au moment de l'exécution, et d'appeler et de modifier il.
Nous pouvons utiliser le code suivant pour obtenir les informations de la classe :
Constructor[] constructors = clazz.getDeclaredConstructors(); for (Constructor constructor : constructors) { System.out.println(constructor); }
Method[] methods = clazz.getDeclaredMethods(); for (Method method : methods) { System.out.println(method); }
Field[] fields = clazz.getDeclaredFields(); for (Field field : fields) { System.out.println(field); }
4. Classe d'opération Objets, méthodes et propriétés
Nous pouvons utiliser le mécanisme de réflexion pour utiliser les objets, méthodes et propriétés d'une classe. Voici des exemples d'utilisation de la réflexion pour faire fonctionner les méthodes et propriétés associées d'une classe :
Utilisation de la réflexion pour créer dynamiquement des objets d'une classe, voici le code d'implémentation :
Class clazz = Class.forName("java.lang.String"); Constructor constructor = clazz.getDeclaredConstructor(String.class); String str = (String) constructor.newInstance("Hello, World!");
Utilisez la réflexion pour appeler dynamiquement les méthodes d'une classe. Voici le code d'implémentation :
Class clazz = Class.forName("java.lang.String"); Method method = clazz.getDeclaredMethod("charAt", int.class); char c = (char) method.invoke("Hello, World!", 1);
Utilisez la réflexion pour lire et modifier dynamiquement. modifier les attributs d'une classe. Voici le code d'implémentation :
Class clazz = Class.forName("java.lang.String"); Field field = clazz.getDeclaredField("value"); field.setAccessible(true); //设置私有属性可读写 String str = "Hello, World!"; char[] chars = (char[]) field.get(str); chars[0] = 'h'; System.out.println(str); //输出: hello, World!
Résumé
Cet article explique comment utiliser la fonction Reflection en Java pour les opérations de réflexion. Le mécanisme de réflexion est une technologie très importante dans la programmation Java. Il permet aux programmeurs d'obtenir et d'exploiter des informations et des propriétés de classe au moment de l'exécution, permettant ainsi aux programmeurs de créer, d'accéder et de modifier dynamiquement les objets, les méthodes et les propriétés d'une classe. Après avoir appris le mécanisme de réflexion, nous pouvons écrire des applications Java de manière plus flexible et écrire du code évolutif et polyvalent.
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!