Добавление в список с помощью отражения
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});
Я использую API BlueJ, который похож на отражение в Java, но оборачивает объекты, следовательно, BMethod.
Мне просто интересно, должен ли метод иметь какую-то ссылку на массив, поскольку он не может увидеть его через вызов рефлексии
Спасибо
Мне удалось решить это. Для тех, кто хочет получить ответ - метод, который я вызывал, я добавил код, чтобы рефлексивно получить внутреннее поле.
2 ответа
Вы должны позвонить method.setAccessible(true)
на Method
объект
Не уверен, почему вы хотите сделать что-то подобное, но это должно работать