如何调用MethodInvoke – reflection
如果我有一个方法,它接受一个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个参数调用这个方法“(数组中每个元素一个)。