Je rencontre une exception NoSuchMethodException lorsque j'essaie d'appeler getMethod sur une méthode de la même classe sans arguments provenant d'un nom de chaîne extrait d'un hashmap. Un conseil, ou un autre moyen d'appeler une méthode dans la même classe avec seulement un nom String de la méthode? L'appel pour obtenir la méthode est ici:Réflexion Java NoSuchMethodException lors du référencement d'une méthode dans la même classe
if (testChoices.containsKey(K)) {
String method = testChoices.get(K);
System.out.println(method);
try {
java.lang.reflect.Method m = TST.getClass().getMethod(method);
m.invoke(testChoices.getClass());
} catch (NoSuchMethodException e1) {
// TODO Auto-generated catch block
System.out.println("No method found");
e1.printStackTrace();
} catch (SecurityException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InvocationTargetException e) {
// TODO Auto-generated catch block
e.printStackTrace();
L'une des méthodes que je suis en train d'appeler est ici:
private static void testgetDomainLic() throws IOException {
Et l'entrée de carte étant appelée est ici:
testChoices.put(1, "testgetDomainLic");
La méthode statique 'testgetDomainLic()' est-elle définie dans la classe TST ou dans une superinterface? –
TST est juste une instance de la classe où testgetDomainLic() est. – user8232299
Je l'ai changé pour appeler la classe directement définie avec Class.forName et il ne trouve toujours pas la méthode. – user8232299