如何调用方法调用 - 反射

时间:2011-11-18 20:45:07

标签: java reflection

如果我有一个方法以int[]为参数,我希望在此调用method.invoke,那么我是否需要执行以下操作

Object[] anArray = {100, 200, 300, 400, 500, 600, 700, 800, 900, 1000};
method.invoke(obj, anArray);

是否因为我似乎遇到错误一样简单?

此致

1 个答案:

答案 0 :(得分:5)

Method.invoke有两个参数。第一个是目标,obj,这是正确的。第二个是数组,表示您尝试调用的实际方法的零个或多个参数(许多方法都有多个参数)。您的代码应更改为:

method.invoke(obj, new Object[] { anArray });

这样,你说“用一个参数调用这个方法,那个参数就是一个数组。这与说法不同,”用10个参数调用这个方法“(数组中每个元素一个)。 / p>