A voir également:
- Créer un objet dont on a le nom de la classe objet en String
- Vente objet occasion entre particulier - Guide
- Créer un compte google - Guide
- Créer un compte gmail - Guide
- Comment créer un groupe whatsapp - Guide
- Créer un compte instagram sur google - Guide
1 réponse
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 019
29 mars 2015 à 13:31
29 mars 2015 à 13:31
Bonjour,
"Est-il possible d'appeler le constructeur de l'objet dont le nom de ce constructeur est un String."
Avec de l'introspection c'est possible, mais il faudrait que le constructeur n'ait pas de paramètre, ou qu'ils aient tous les même paramètres en entrée.
Remarque : formellement le constructeur n'est pas celui de la classe mère, mais celui de la classe fille qui sera récupéré. Cependant au niveau des classes de manipulation on peut y faire abstraction grâce à l'héritage.
"Est-il possible d'appeler le constructeur de l'objet dont le nom de ce constructeur est un String."
Avec de l'introspection c'est possible, mais il faudrait que le constructeur n'ait pas de paramètre, ou qu'ils aient tous les même paramètres en entrée.
String className = "ClasseFille"; Class<ClasseMere> classeMere = (Class<ClasseMere>) Class.forName(className); // Constructeur sans paramètre ClasseMere objetMere = classeMere.newInstance(); // Constructeur avec paramètre (Exemple: int=42 et String="toto") Constructor<ClasseMere> constructor = classeMere.getConstructor(int.class, String.class); ClasseMere objetMere = constructor.newInstance(42, "toto");
Remarque : formellement le constructeur n'est pas celui de la classe mère, mais celui de la classe fille qui sera récupéré. Cependant au niveau des classes de manipulation on peut y faire abstraction grâce à l'héritage.
29 mars 2015 à 14:40
De plus, je te déconseilles vivement de catcher une Exception par un System.err.println, car ça ne te donnera pas le détail de l'erreur (quelle ligne ça planté par exemple), il vaut donc mieux faire un printStackTrace
Il faudrait également penser à découper ton code en méthode, par exemple il n'y a pas de raison que la lecture du fichier se fasse au moment du setteur, il serait plus logique de lire une seule fois le fichier et de stocker ses différentes valeurs dans une Map.
31 mars 2015 à 13:18
Je teste ça !!!