我的代码看起来像下面这样:
class MyObject {
MyField f = new MyField();
}
class MyField {
public void greatMethod();
}
有没有一种方法可以使用反射在MyObject
类的对象上调用greatMethod()
?我尝试了以下方法:
Field f = myObject.getClass().getDeclaredField("f");
Method myMethod = f.getDeclaringClass().getDeclaredMethod("greatMethod", new Class[]{});
myMethod.invoke(f);
但实际上它正在尝试直接在我的 myObject 上调用 greatMethod()
而不是在其中的字段 f 上调用。有没有一种方法可以实现这个目标,而无需修改 MyObject 类(使其实现一个调用 f 上适当方法的方法)。