Bonjour,
comme le titre l'indique, je souhaiterai instancier dynamiquement des classes.
J'ai donc un fichier Xml qui contient (par exemple) le nom (complet) de la classe à instancier ainsi que la valeur des paramètres à utiliser.
J'ai donc commencé par lire ces tutoriels pour apprendre la programmation Java (dont l'incontournable jmdoudoux en java) : http://java.developpez.com/cours/
Mais le dernier exemple me laisse perplexe, car dans l'appel
il semblerait que cette instanciation se fasse en connaissant déjà la nature de la classe. Si c'est le cas, on perd totalement en généricité et je ne veux pas cela.
Code java : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 MaClasse instance = constructeur.newInstance(new Object[] {Boolean.FALSE, "nom instance" }) ;
Donc mes questions sont :
- est ce que je n'ai pas compris du tout l'exemple en question ?
- si tel est le cas, comment pourrais je instancier la classe suivante ? Par exemple :
Code xml : Sélectionner tout - Visualiser dans une fenêtre à part <malib.monpackage.maclasse Param1="val1" Param2="val2" />
Si ce que je veux faire n'est pas possible de manière générique, alors la seule solution que je vois, c'est d'avoir une méthode dans chaque classe qui retournerait une instance en fonction du noeud correspondant dans le fichier Xml. Mais comme je ne connais pas les classes en question, il faudrait que ces classes aient toutes un constructeurs vide/inutile servant juste à une instanciation bidon, pour pouvoir appeler la méthode qui génèrerait la bonne instance en fonction des paramètres.
Mais je trouve cette histoire d'instanciation bidon, vraiment bidon ! Bien que cela se fasse d'instancier une classe en attendant d'avoir ses paramètres et donc de la définir réellement.
Merci par avance pour votre aide.
Partager