2011-09-30 6 views
0

J'utilise la fonction getMethod (String name) pour charger une méthode mais elle renvoie toujours MethodNotFoundException. Si je lance class.getMethods() la méthode que je cherche est dans ce résultat avec le nom exact que j'utilise pour passer à getMethod. La méthode que j'essaye de charger est une méthode statique donc je ne sais pas si getMethod ne fonctionnera pas pour les méthodes statiques. De l'aide?Java getMethod renvoie la méthode non trouvée exception?

+2

Voyons le code qui échoue et la sortie que vous estimez valider votre code. :) – corsiKa

+0

Cela fonctionne également pour les méthodes statiques. Ce n'est pas le problème. -> http://en.wikibooks.org/wiki/Java_Programming/Reflection/Overview – MasterCassim

Répondre

6

Si la méthode que vous recherchez prend des arguments, vous devez également transmettre leurs types à getMethod(). La signature d'une méthode Java (la chose qui définit et identifie une méthode de façon unique) comprend le nom de la méthode et ses types de paramètres.

http://download.oracle.com/javase/tutorial/java/javaOO/methods.html

+3

+1, et s'il n'est pas public, vous devez utiliser 'getDeclaredMethod' à la place. –

0

Le nom ne suffit pas. Vous devez spécifier exactement quels types d'arguments vous pensez que la méthode prend, sinon la requête peut être ambiguë (car Java supporte la surcharge).

Questions connexes