Invoke d'une methode avec programmation par reflexion

javasfutur - 8 avril 2013 à 01:18
 javasfutur - 9 avril 2013 à 02:43
Bonsoir,
Comme le titre l'indique j'essaye d'invoquer une méthode en utilisant la programmation par reflexion mais je n'arrive pas et je ne sais pas d'ou peut venir le problème,j'ai vraiment besoin de l’aide j’ai tant cherché dans le net mais en vain je vous présente une portion du code pour avoir une idée plus claire

Class<?> cls = Class.forName(className);
Object instanciation = cls.newInstance();
Methode methode = instance.getClass().getDeclaredMethod(methodeName);
result = methode.invoke(instanciation);

et voilà l'erreur qui me s'affiche:

java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
.....

2 réponses

cs_jojolemariole Messages postés 519 Date d'inscription mercredi 21 mars 2007 Statut Membre Dernière intervention 19 décembre 2016 25
8 avril 2013 à 15:09
Salut,

Dans ton cas, l'introspection est bien faite, le problème est qu'une exception s'est produite dans l'appel de fonction. Il nous manque la cause de ton exception que tu auras en faisant getCause() ou getTargetException() au choix.

Cette cause devait certainement être affichée à la suite de "caused by" dans ta trace.
0
Bonsoir,

je vous remercie pour votre réponse en fait le problème était au niveau de l'objet passer à la fonction invoke car il n'est pas initialisé ( car les champs à remplir d'une Class de swing que j'essaye d'instancie n'ont pas encore initialisé lors de l'appel de cette fonction invoke) et donc j'ai fait passer le this dans un getter après instanciation de classe .
0
Rejoignez-nous