Les étapes pour créer un objet via le mécanisme de réflexion Java sont les suivantes : Chargez la classe cible : Utilisez la méthode Class.forName(). Récupérez le constructeur : utilisez la méthode getDeclaredConstructor(). Créez un objet : utilisez la méthode newInstance() pour transmettre des paramètres.
Comment créer des objets à l'aide du mécanisme de réflexion Java
Introduction
Le mécanisme de réflexion Java permet à un programme d'inspecter et de modifier les propriétés et les méthodes d'une classe au moment de l'exécution. L'une des fonctionnalités utiles est la possibilité de créer des objets en utilisant la réflexion, ce qui peut être très utile dans certains scénarios.
Étapes pour créer des objets par réflexion
Class.forName()
pour charger la classe cible de l'objet à créer. Class.forName()
方法加载要创建对象的目标类。getDeclaredConstructor()
方法获取带有指定参数列表的类构造函数。newInstance()
Utilisez la méthode getDeclaredConstructor()
pour obtenir le constructeur de classe avec la liste de paramètres spécifiée.
Utilisez la méthode newInstance()
, en passant les paramètres réels pour créer une nouvelle instance de ce constructeur.
Exemples de code
import java.lang.reflect.Constructor; import java.lang.reflect.InvocationTargetException; class Person { private String name; private int age; public Person(String name, int age) { this.name = name; this.age = age; } public String getName() { return name; } public int getAge() { return age; } } public class ObjectCreationViaReflection { public static void main(String[] args) { Class<?> personClass = null; try { // 加载 Person 类 personClass = Class.forName("Person"); // 获取带两个参数的构造函数 Constructor<?> constructor = personClass.getDeclaredConstructor(String.class, int.class); // 使用构造函数创建对象 Person person = (Person) constructor.newInstance("John Doe", 30); // 访问创建对象的属性 System.out.println("Name: " + person.getName()); System.out.println("Age: " + person.getAge()); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (NoSuchMethodException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (InstantiationException e) { e.printStackTrace(); } catch (InvocationTargetException e) { e.printStackTrace(); } } }
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!