java - 如何调用Method Invoke——反射

标签 java 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 个参数调用此方法”(数组中的每个元素一个)不同。

关于java - 如何调用Method Invoke——反射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8188870/

相关文章:

java - 你能用反射找到一个包中的所有类吗?

java - 使用反射访问父类(super class)的隐藏字段

c# - 反射——从类型到类(不是类的实例)

Java 使用带有 try-with-resources 的扫描器

Java XPATH 仅选择子元素的第一个元素

java - 为什么我的中间存储库接口(interface)从 Spring Data JPA 1.4.x 升级到更新版本(例如 1.7.1)后会出现问题?

c# - 在沙箱 AppDomain 中执行反射方法时出现 SecurityException

c# - 如何使用代码生成动态创建C#方法?

java - 如何强制 Class.forName 仅查看 jar 内部?

java - Java 的多维图形库