Instanciation de classes par nom en Java
Certaines situations nécessitent l'instanciation d'une classe en utilisant uniquement son nom. Ce guide explorera deux méthodes pour y parvenir en Java.
Méthode 1 : pour les classes avec des constructeurs sans argument
En supposant que la classe possède un constructeur sans argument, utilisez Class.forName() pour obtenir un objet Class représentant la classe. Ensuite, utilisez la méthode newInstance() pour créer une instance. Notez que cette méthode est généralement déconseillée car elle peut contourner les exceptions vérifiées de Java.
Exemple :
Class<?> clazz = Class.forName("java.util.Date"); Object date = clazz.newInstance();
Méthode 2 : Approche générale
Pour les classes avec ou sans constructeurs sans argument, utilisent une approche plus sûre qui implique de récupérer un objet Constructor à partir de l'objet de classe et d'invoquer son Méthode newInstance().
Exemple :
Class<?> clazz = Class.forName("com.foo.MyClass"); Constructor<?> constructor = clazz.getConstructor(String.class, Integer.class); Object instance = constructor.newInstance("stringparam", 42);
Remarque :
Les deux méthodes exploitent la réflexion, une technique polyvalente qui permet une inspection dynamique des classes et des objets. Cependant, il est essentiel de gérer les exceptions potentielles, notamment celles liées à la résolution de classe, à la disponibilité du constructeur et aux restrictions de sécurité imposées par la machine virtuelle Java ou le gestionnaire de sécurité.
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!