通过反射添加到列表中


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。

我只是想知道该方法是否需要对数组列表有一些引用,因为它无法通过反射调用

看到它

感谢我已经设法解决了这个问题。对于那些想要知道答案的人——我调用的方法,我添加了代码来反射地获取内部字段。

不知道为什么要这样做,但它应该工作

  1. 检索方法(您已经有)
  2. 使其可访问,允许您调用该方法,尽管它是私有的
  3. 调用

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

相关内容

  • 没有找到相关文章

最新更新