Trois méthodes de réflexion Java : 1. Récupérer l'objet Classe ; 2. Récupérer le constructeur, les champs et les méthodes de la classe ; 3. Appeler les méthodes et accéder aux champs par réflexion. Introduction détaillée : 1. Obtenir l'objet Class : Vous pouvez obtenir l'objet Class via l'une des trois méthodes suivantes : acquisition d'objet, acquisition du nom de classe et acquisition du nom complet de la classe, afin d'obtenir des informations sur la classe ; la méthode constructeur de la classe, Champs et méthodes : Grâce à l'objet Class, vous pouvez obtenir le constructeur, les champs et les méthodes de la classe 3. Appeler les méthodes et accéder aux champs par réflexion, etc.
Le système d'exploitation de ce tutoriel : système Windows 10, ordinateur Dell G3.
En Java, la réflexion est un mécanisme puissant qui permet d'obtenir des informations sur la classe, d'appeler des méthodes de classe, d'accéder aux champs de classe, etc. Reflection propose trois méthodes principales pour implémenter ces opérations :
1. Obtenir l'objet Class : Vous pouvez utiliser l'une des trois méthodes suivantes pour obtenir l'objet Class afin d'obtenir des informations sur la classe.
Parcourir l'objet : utilisez la méthode getClass() de l'objet.
MyClass obj = new MyClass(); Class<?> myClass = obj.getClass();
Obtenu par nom de classe : Utilisez l'attribut class du nom de classe.
Class<?> myClass = MyClass.class;
Obtenu via le nom complet de la classe : utilisez la méthode Class.forName().
Class<?> myClass = Class.forName("com.example.MyClass");
2. Récupérez le constructeur, les champs et les méthodes de la classe : Grâce à l'objet Class, vous pouvez obtenir le constructeur, les champs et les méthodes de la classe.
Obtenez le constructeur :
Constructor<?>[] constructors = myClass.getConstructors();
Obtenez le champ :
Field[] fields = myClass.getDeclaredFields();
Obtenez la méthode :
Method[] methods = myClass.getMethods();
3. Appelez les méthodes et accédez aux champs par réflexion : en utilisant l'objet Method et l'objet Field, vous peut appeler les méthodes de classe et accéder aux valeurs des champs.
Méthodes d'appel :
Method myMethod = myClass.getMethod("methodName", parameterTypes); myMethod.invoke(objectInstance, args);
Accès aux champs :
Field myField = myClass.getDeclaredField("fieldName"); myField.setAccessible(true); // 如果字段是私有的,需要设置为可访问 Object fieldValue = myField.get(objectInstance);
Ces trois méthodes offrent la flexibilité nécessaire pour obtenir des informations sur la classe, appeler des méthodes et accéder aux champs au moment de l'exécution. Cependant, sachez que les opérations de réflexion peuvent entraîner une surcharge de performances et nécessiter une gestion des exceptions lorsqu'elles sont utilisées.
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!