Instancier des classes par nom en Java
Java propose deux méthodes pour instancier des classes en passant leur nom de chaîne :
1. Utiliser Reflection avec un constructeur sans argument
Si la classe cible a un constructeur sans argument, vous pouvez utiliser la méthode Class.forName() pour obtenir l'objet Class. Par la suite, appelez la méthode newInstance() pour créer une instance :
Class<?> clazz = Class.forName("java.util.Date"); Object date = clazz.newInstance();
2. Utilisation de Reflection pour les classes avec ou sans constructeurs sans argument
Pour une approche plus complète qui fonctionne pour les classes avec ou sans constructeurs sans argument, suivez ces étapes :
Class<?> clazz = Class.forName("com.foo.MyClass"); Constructor<?> constructor = clazz.getConstructor(String.class, Integer.class); Object instance = constructor.newInstance("stringparam", 42);
Remarque : Les deux approches impliquent une réflexion , qui doit être utilisé judicieusement car il peut contourner les contraintes de gestion des exceptions et de sécurité de Java.
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!