Maison >Java >javaDidacticiel >Java peut-il instancier des classes en utilisant uniquement leurs noms ?
L'instanciation de classe par nom est-elle possible en Java ?
Lorsqu'il s'agit d'instanciation de classe, des circonstances peuvent survenir où le nom de classe est connu uniquement sous le nom une chaîne. Pour résoudre ce problème, Java propose deux approches pour accomplir cette tâche.
Méthode 1 : Instancier avec un constructeur sans argument
Pour les classes avec un constructeur sans argument, Java permet la création d'objets à l'aide de la méthode Class.forName() pour récupérer l'objet de classe et de la méthode newInstance() pour créer un exemple.
Class<?> clazz = Class.forName("java.util.Date"); Object date = clazz.newInstance();
Méthode 2 : Gestion des classes avec ou sans constructeur sans argument
Une approche plus complète qui couvre tous les scénarios, y compris les classes sans argument constructeurs, implique d'interroger l'objet de classe pour son constructeur et d'invoquer newInstance() dessus.
Class<?> clazz = Class.forName("com.foo.MyClass"); Constructor<?> constructor = clazz.getConstructor(String.class, Integer.class); Object instance = constructor.newInstance("stringparam", 42);
Les deux méthodes utiliser les capacités de réflexion de Java. Cependant, il est crucial de gérer les exceptions qui peuvent survenir au cours de ce processus, telles que :
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!