Java 反射 API : Invoking a method without parameters

标签 java reflection

我要调用的方法(我知道它是公共(public)的,但我需要使用反射):

public byte[] myMethod()  

我得到这样的 Method 对象并且 m 包含 myMethod()(我用调试器检查过)

Method m = Class.forName(MyClass.class.getName()).getDeclaredMethod("myMethod");

最后我需要调用 m 并将结果传递给一个对象:

byte[] myBytes = null;
m.invoke(myBytes);

没有抛出异常,但 myBytes 保持为空......我也尝试了以下但没有成功:

m.invoke(myBytes, (Object[])null);

如何获取调用 myBytes 的结果?

最佳答案

No exception is thrown but myBytes stays null

没错,你想要的是:

byte[] myBytes = (byte[])m.invoke(yourInstance);

更多信息 the documentation .备注:

  • 方法的返回值是invoke的返回值。
  • invoke 的第一个参数是调用该方法的实例(因为您列出的是实例方法,而不是静态方法;如果它是静态的,第一个参数将是 )。您没有在任何地方显示引用该实例的变量,因此我在上面将其称为 yourInstance

关于Java 反射 API : Invoking a method without parameters,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14443808/

相关文章:

java - 如何更改 Java ROME 解析器默认套接字超时?

java - 如何在 LDAP 中使用 DN 和密码在 Java 中进行绑定(bind)?

java - 如何在 JComboBox 中放置图像并设置其大小

java - 使用 Java process exec 通过 tee 命令将 telnet 输出通过管道传输到日志文件

c# - 使用反射调用重写的基方法

java - 如何根据微调器值将音频保存在SD卡中

java - Reflection + AOP - 通过调用调用方法时未拦截通知

c# - 判断一个结构体是否为没有 "Equals"的默认值;也称为结构的 ReferenceEquals

java - 如何在scala中动态输入cast Any?

c# - 反射获取 FieldInfo 对象的类型?