0
public class Test
{
    private ArrayList<Object> list = new ArrayList<Object>();

    private void addToList(Object o)
    {
        list.add(o);
    }
}

如果我通过反射从外部类调用该方法addToList(Object o),是否需要考虑一些事情才能使反射调用能够访问列表?

BMethod method = builderClass.getDeclaredMethod("addToList", new Class<?>[]{Object.class});

我正在使用 BlueJ api,它类似于 Java 中的反射,但包装了对象,因此是 BMethod。

我只是想知道该方法是否需要对 arraylist 进行一些引用,因为它无法通过反射调用看到它

谢谢

我已经设法解决了这个问题。对于那些不想回答的人——我正在调用的方法,我添加了代码以反射性地获取内部字段。

4

2 回答 2

0

你必须method.setAccessible(true)调用Method对象

于 2011-12-05T21:54:37.073 回答
0

不知道你为什么想做这样的事情,但它应该工作

  1. 检索方法(您已经拥有)
  2. 使其可访问,允许您调用该方法,尽管它是私有的
  3. 调用方法
于 2011-12-05T21:57:04.330 回答