我在尝试在同一个类中的方法上调用getMethod时遇到NoSuchMethodException,并且没有从哈希映射中抽取字符串名称的参数。任何建议,或只给出方法的字符串名称在同一类中调用方法的另一种方法? 获得方法的调用是在这里:Java反射NoSuchMethodException在引用同一类中的方法时
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();
一个我试图调用的方法是在这里:
private static void testgetDomainLic() throws IOException {
,map条目被称为是在这里:
testChoices.put(1, "testgetDomainLic");
静态方法testgetDomainLic()在TST类中定义,还是在它的超级接口中定义? –
TST只是testgetDomainLic()所在的类的一个实例。 – user8232299
我改变它调用Class.forName直接定义的类,它仍然没有找到方法。 – user8232299