maVar nouvelObjet = new maVar() - Java - Programmation
Marsh Posté le 17-11-2009 à 17:27:52
je sais pas si ya mieux, mais tu dois pouvoir faire:
Code :
|
http://java.sun.com/j2se/1.5.0/doc [...] Class.html
Marsh Posté le 17-11-2009 à 17:36:39
Merci mais je crois que je me suis mal exprimé ...
J'ai une liste de catégorie d'objet dans un String[]
String[] listeCatObj={"Meubles","Fournitures","Divers"};
Avec un for qui va bien j'affiche
0 - Meubles
1 - Fournitures
2 - Divers
Je demande à l'utilisateur de taper un chiffre au clavier et je veux faire dans le cas où il tape 1 par exemple
Fournitures monNouvelObjet = new Fournitures();
et dans le cas où il tape 2
Divers monNouvelObjet = new Divers();
En gros si je recupere le choix de l'utilisateur dans la var maVar
maVar monNouvelObjet = new maVar();
...
Marsh Posté le 17-11-2009 à 17:56:55
ma réponse n'est pas incompatible... par contre il va bien te falloir pouvoir type cet objet de manière générique...
Marsh Posté le 17-11-2009 à 18:17:02
et bien les trois héritent de la classe ObjetMaison
je fais donc
Code :
|
??
où listC.getCatObj(i) renvoie bien ce que je veux
Marsh Posté le 17-11-2009 à 18:30:39
Tu ferais mieux de stocker Meubles, Fournitures et le reste sous le type Class dans ta liste plutôt que sous la forme de chaînes de caractères.
Code :
|
Comme ça tu n'as plus qu'à faire:
Code :
|
Marsh Posté le 17-11-2009 à 23:33:23
Je préfère la réponse de pataluc (qui marche à merveille) pour des raisons de maintenance. Merci à vous deux
Marsh Posté le 18-11-2009 à 05:21:35
Ma version est plus sûre et plus facile à maintenir puisque si l'une des classes n'existe pas ou que tu fais une faute de frappe dans le nom de la classe, le code ne compilera pas. Imagine que tu fais un refactor automatique afin de renommer ta classe "Autres" en "Divers" plus tard par exemple, si tu encodes le nom de la classe en dur sous forme de chaîne de caractères le compilateur ne dira rien alors que ta chaîne sera toujours "Autres" au lieu de "Divers" et boum ça plantera plus tard à l'exécution. Tandis que si tu utilises Autres.class et que tu fais le même refactor, il sera automatiquement modifié en Divers.class donc plus facile à maintenir et pas de surprise à l'exécution.
De plus ma version est plus rapide puisque l'opération consistant à rechercher la classe correspondant à un nom donné ne doit plus être effectuée à l'exécution. On prend juste la classe dans le tableau et on l'instancie.
Marsh Posté le 17-11-2009 à 17:20:45
Bonjour,
J'ai le nom d'une classe dans une variable String maVar par exemple.
Et je veux faire un nouvel objet de type maVar... quelle est la synthaxe à utiliser, si elle existe, je sais que tous les langages ne sont pas réflexifs (comme C++ si je ne m'abuse)
Merci