获取nosuchmethod异常

时间:2018-12-13 17:50:10

标签: java eclipse private nosuchmethod reflect

我是编程新手,这是我的代码

this

这是例外:

  

线程“主”中的异常java.lang.NoSuchMethodException:first_project.addition.add(int a,int b)()   在java.base / java.lang.Class.getDeclaredMethod(Class.java:2434)   在first_project.My_Class.main(My_Class.java:15)

2 个答案:

答案 0 :(得分:3)

Method.getDeclaredMethod接受方法名称和参数类型作为参数。您必须像这样Method m = addition.class.getDeclaredMethod("add", int.class, int.class);

进行更改

方法调用也是错误的:

m.invoke(c); 

应为:

m.invoke(*instance of addition*, *first param*, *second param*);

相应地替换*instance of addition*等。

此外,Java使用类似code conventions的类:类名必须以大写字母等开头。

答案 1 :(得分:2)

更改此行:

addition.class.getDeclaredMethod("add(a,b)");

对此:

Method method = addition.class.getDeclaredMethod("add", int.class, int.class);

getDeclaredMethod以方法名称及其参数类型作为参数。

要调用该方法:

method.invoke(new addition(), a, b);