Dans certains scénarios, vous pouvez avoir besoin de pouvoir créer dynamiquement une instance d'une classe donnée, même lorsque le nom de la classe est inconnu jusqu'à l'exécution. Cela permet une plus grande flexibilité et permet des scénarios dans lesquels les classes sont chargées dynamiquement.
Pour y parvenir, vous pouvez utiliser les capacités de réflexion fournies par Java. Voici comment créer une instance en utilisant le nom de la classe et fournir des arguments à son constructeur :
String className = "mypackage.MyClass"; Class<?> clazz = Class.forName(className); Constructor<?> ctor = clazz.getConstructor(String.class); Object object = ctor.newInstance(new Object[] { "MyAttributeValue" });
Dans ce code, la méthode Class.forName est utilisée pour obtenir l'objet Class pour le nom de classe spécifié. La méthode getConstructor récupère un constructeur qui accepte les types de paramètres spécifiés. Enfin, newInstance est invoquée pour créer une instance de la classe, en transmettant les arguments fournis au constructeur.
Notez que cette approche nécessite que vous fournissiez le nom complet de la classe, y compris les informations sur le package ou l'espace de noms. Les classes imbriquées sont accessibles à l'aide du signe dollar ("$"), comme le montre l'exemple fourni dans la question.
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!