如何调用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个参数调用这个方法“(数组中每个元素一个)。