Maison > Java > javaDidacticiel > Comment puis-je créer des instances Java de manière dynamique ?

Comment puis-je créer des instances Java de manière dynamique ?

Mary-Kate Olsen
Libérer: 2024-11-25 13:24:15
original
608 Les gens l'ont consulté

How Can I Create Java Instances Dynamically?

Création dynamique d'instances en Java

Instancier des classes par nom est un scénario fréquemment rencontré en programmation. Java propose plusieurs façons d'y parvenir.

Méthode 1 : pour les classes avec des constructeurs sans argument

Pour les classes avec des constructeurs sans argument (no-arg), le La méthode Class.forName() peut être utilisée. Il renvoie un objet Class et la méthode newInstance() suivante crée une instance de la classe spécifiée.

Class<?> clazz = Class.forName("java.util.Date");
Object date = clazz.newInstance();
Copier après la connexion

Méthode 2 : une approche plus polyvalente

Cette La méthode est préférée lorsque les classes ne peuvent pas avoir de constructeurs sans argument. Cela implique d'obtenir l'objet Constructor puis d'invoquer sa méthode newInstance().

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

Considérations

Les deux méthodes utilisent la réflexion, ce qui peut provoquer des exceptions si :

  • La JVM ne parvient pas à trouver ou à charger la classe spécifiée.
  • La classe manque constructeurs appropriés.
  • Le constructeur lève une exception.
  • Le constructeur n'est pas déclaré public.
  • Un responsable de la sécurité restreint la réflexion.

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