如何调用MethodInvoke -反射



如果我有一个以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个参数调用这个方法"(数组中的每个元素一个参数)不同。

相关内容

  • 没有找到相关文章

最新更新