2011-12-01 73 views
2

我設法通過反射訪問類變量,並將其存儲在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 
+2

如果您向我們展示更具體的內容,例如你是否正在討論在'public class Foo {private List bar; }'到一個'List'的實例?或者你是否正在討論改變'公共類Foo中的'bar'類型{private Baz bar; }'? –

+0

你可以發佈一些代碼嗎? –

+0

清單究竟是什麼?你能否提供一個你想要的例子。 – nullpotent

回答

6

未經測試:

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

我假設上面的是什麼你想幹什麼?你的代碼示例有點不清楚。

此外,由於該字段是私人的,您將需要使用getDeclaredField()而不是getField()(如您在示例中使用的那樣)。