Maison > Java > javaDidacticiel > Comment puis-je instancier des classes Java en utilisant uniquement leurs noms de chaîne ?

Comment puis-je instancier des classes Java en utilisant uniquement leurs noms de chaîne ?

Mary-Kate Olsen
Libérer: 2024-12-11 19:08:20
original
179 Les gens l'ont consulté

How Can I Instantiate Java Classes Using Only Their String Names?

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();
Copier après la connexion

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 :

  1. Récupérez l'objet Class à l'aide de Class.forName().
  2. Obtenez l'objet constructeur à l'aide de la méthode getConstructor(), en spécifiant les types de paramètres si nécessaire.
  3. Instancier la classe en appelant newInstance() sur l'objet constructeur, en passant les paramètres requis.
Class<?> clazz = Class.forName("com.foo.MyClass");
Constructor<?> constructor = clazz.getConstructor(String.class, Integer.class);
Object instance = constructor.newInstance("stringparam", 42);
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal