Bonjour,
Est t'il possible d'instancier un classe avec un nom provenant d'une variable (le nom de l'instance, pas la classe).
Du genre :
MyClass mavariable = new MyClass();
merci
Version imprimable
Bonjour,
Est t'il possible d'instancier un classe avec un nom provenant d'une variable (le nom de l'instance, pas la classe).
Du genre :
MyClass mavariable = new MyClass();
merci
je suis pas sur d'avoir compris ta question.
Si tu as une instance dans un variable et que tu veux créer une nouvelle instance du même type, tu peux faire ceci:
Si tu veux le faire à partir d'un nom de class:Code:Object monObject = maVariable.getClass().newInstance()
Code:
1
2 String name = "java.lang.String"; Object o = Class.forName(name).newInstance();
Ouais, excuse moi si je suis pas très clair.
Non, en fait je souhaite créer des instances dont je puisse controler le nom par des String.
du genre j'aimerai qu'un truc comme:
String mystring="blabla";
MyClass mystring = new MyClass();
me construise une instance de MyClass qui s'appelle blabla, et qu'ensuite je puisse donc meme écrire :
blabla.uneMéthode();
Donc pas possible (le language java n'est pas interprété, il est compilé)Code:
1
2
3 String nom = "blabla"; //valeur de 'nom' interpretée à l'exécution blabla.uneMethode(); // utilisée à la compilation
Si t'as vraiment besoin d'utiliser des noms dynamique, stocke çà dans un Map et fait des
Code:((MonType)map.get("blabla")).uneMethode()
Ouais, je pense que je vais faire ca, une HashMap.
Je te remercie