gpt4 book ai didi

java - 调用反射Class.getMethod时出现异常

转载 作者:行者123 更新时间:2023-12-01 22:18:14 25 4
gpt4 key购买 nike

我有下面的代码,它使用反射调用方法。但我得到了,

java.lang.IllegalArgumentException: wrong number of arguments

Method.invoke 处的异常。原因是什么?

public class B {
public static void main(String[] args) {
A a = new A();
Method m;
try {
m = a.getClass().getMethod("m3",Integer.class);
m.invoke(a);
} catch (Exception e) {
e.printStackTrace();
}
}
}

public class A {
public void m3(Integer x){
System.out.println("ssss");
}
}

最佳答案

invoke(Object, Object...)-method将应该调用该方法的对象作为其第一个参数(正如您所做的正确一样),然后将then作为可变长度参数any应传递给方法调用的参数。

就您而言,您忘记了方法Integer参数。您尝试调用的方法是 A.m3(),该方法在类中不存在。

正确的调用是:

m.invoke(a, 12); // or any int/Integer as it's second parameter

关于java - 调用反射Class.getMethod时出现异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30546549/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com