如何调用MethodInvoke - 反射

Bis*_*128 0 java reflection

如果我有一个方法,它采取一个int[]参数,我希望调用method.invoke此,那么我需要做以下事情

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

它是否像我似乎得到错误一样简单?

问候

Kir*_*oll 5

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

method.invoke(obj, new Object[] { anArray });
Run Code Online (Sandbox Code Playgroud)

这样,你说"用一个参数调用这个方法,那个参数就是一个数组.这与说法不同,"用10个参数调用这个方法"(数组中每个元素一个).