Maison > Java > javaDidacticiel > Comment puis-je instancier dynamiquement une classe en Java en utilisant son nom et ses paramètres de constructeur ?

Comment puis-je instancier dynamiquement une classe en Java en utilisant son nom et ses paramètres de constructeur ?

Patricia Arquette
Libérer: 2024-12-25 03:38:24
original
798 Les gens l'ont consulté

How Can I Dynamically Instantiate a Class in Java Using Its Name and Constructor Parameters?

Création dynamique d'une instance à l'aide du nom de classe et des paramètres du constructeur

Dans certains scénarios, vous pouvez rencontrer le besoin de créer une instance d'une classe donné dynamiquement son nom de classe et fournit des paramètres à son constructeur. Ceci peut être réalisé en utilisant l'approche suivante :

  1. Obtenir l'objet Class pour le nom de classe donné :

    • Utiliser la classe. forName() pour charger la classe en fonction de son nom complet, y compris le namespace.
  2. Récupérez le constructeur de la classe :

    • Invoquez getConstructor() sur l'objet Class pour obtenir l' constructeur qui correspond au nombre et aux types souhaités de paramètres.
  3. Créez une instance de la classe à l'aide du constructeur :

    • Appelez newInstance() sur le constructeur, transmettre les paramètres spécifiés sous forme de tableau de objets.

Voici un exemple pour illustrer ce processus :

Class<?> clazz = Class.forName("mypackage.MyClass");
Constructor<?> ctor = clazz.getConstructor(String.class);
Object object = ctor.newInstance(new Object[] { "MyAttributeValue" });
Copier après la connexion

Notez que cette approche nécessite de fournir un nom de classe complet, y compris tout imbriqué classes séparées par le signe dollar ($). Par exemple, pour créer une instance d'une classe imbriquée, vous utiliserez un nom de classe tel que "foo.Outer$Nested".

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