2011-04-26 5 views
1

J'ai donc créé une instance d'une classe en recherchant dans les fichiers jar sans problème, je l'ai configurée pour créer une instance en utilisant c.newInstance() mot à utiliser ici?)Créer une autre instance d'une classe chargée dynamiquement - Java

Plus tard dans le programme, je souhaite créer une autre instance de cette classe si un certain événement se produit. Comment puis-je créer ceci sans avoir à chercher dans tous les fichiers Jar jusqu'à ce que je trouve le bon et que je le crée à nouveau? Y a-t-il un moyen de le créer d'une manière ou d'une autre si j'ai toujours une référence à la première?

Veuillez supposer que je ne connais pas le nom des classes qui seront chargées jusqu'à l'exécution et il y aura plusieurs classes qui seront chargées.

Merci

+0

Haha, 3 personnes tout avec la bonne réponse. Comment est-ce que je choisis? – tgrosinger

+0

jette un dé ... – Bozho

+0

est-ce que tu te trouves en train de faire référence à un particulier quand tu as formé la réponse? – rajah9

Répondre

2

En supposant "x" est l'objet que vous avez créé ...

x.getClass().newInstance(); 
4

Enregistrer une référence à la classe de votre objet

Class c = dynamicObject.getClass(); 

et

et vous pouvez créer une nouvelle instance comme celle-ci (en supposant qu'il existe un constructeur sans paramètre)

Object anotherDynamicObject = c.newInstance(); // you can cast accordingly 

autre, dire qu'il ya un consturctor qui prend int, vous pouvez faire

Constructor constructor = c.getConstructor(int.class); 
Object anotherDynamicObject = constructor.newInstance(1); 
Questions connexes