如何通过反射修改List

时间:2011-12-01 19:08:10

标签: java reflection

我已设法通过反射访问类变量,并将其存储在Field变量中。我也有该领域所属的类。如何将Field对象转换为List,因为我想使用反射添加到此List。

我通过反射访问的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 个答案:

答案 0 :(得分:6)

未测试:

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

我假设以上是你要做的事情?您的代码示例中有点不清楚。

此外,由于该字段是私有的,因此您需要使用getDeclaredField()而不是getField()(正如您在示例中所使用的那样)。