Как изменить список с помощью отражения - PullRequest
2 голосов
/ 01 декабря 2011

Мне удалось получить доступ к переменной класса с помощью отражения и сохранить ее в переменной поля.У меня также есть класс, которому принадлежит поле.Как преобразовать объект Field в список, поскольку я хочу добавить его в этот список с помощью отражения.

Переменная List, к которой я обращаюсь с помощью отражения (и храню в объекте Field), хочу получитьдобавить к этому.

Спасибо

import java.util.ArrayList;


    public class Test 
    {
        private ArrayList<Integer> aList = new ArrayList<Integer>();

        //some methods...
    }

    Field field = myObject.getClass().getField("aList");;
    field.setAccessible(true);
    //some how add an integer to that list

1 Ответ

6 голосов
/ 01 декабря 2011

Непроверенные:

ArrayList<Integer> myList = (ArrayList<Integer>) field.get(myObject);
myList.add(5);

Я предполагаю, что вышесказанное - это то, что вы пытаетесь сделать? Это немного неясно из вашего примера кода.

Кроме того, поскольку поле является закрытым, вам нужно будет использовать getDeclaredField () вместо getField () (как вы используете в своем примере).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...