如果我有一个以 int[]
作为参数的方法,并且我希望对此调用 method.invoke
那么我需要执行以下操作
Object[] anArray = {100, 200, 300, 400, 500, 600, 700, 800, 900, 1000};
method.invoke(obj, anArray);
事情就这么简单吗?我似乎遇到了错误?
问候
最佳答案
Method.invoke
采用两个参数。第一个是目标,obj
,这是正确的。第二个是一个数组,表示您尝试调用的实际方法的零个或多个参数(许多方法有多个参数)。您的代码应更改为:
method.invoke(obj, new Object[] { anArray });
这样,您就可以说“使用一个参数调用此方法,并且该参数是一个数组。这与“使用 10 个参数调用此方法”(数组中的每个元素一个)不同。
关于java - 如何调用Method Invoke——反射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8188870/