2011-03-23 62 views
0

我想從一個類使用反射訪問一堆最終的靜態公共int。但這個類沒有構造函數 - 例如android的R.id。我想獲得所有這些int值,但我似乎無法訪問它,因爲你不能創建類。我正在考慮擴展它來創建一個構造函數,但我不確定這是否明智。有什麼建議麼?我無法修改R.id或R.array(至少我不應該這麼想)。在不初始化的情況下反射訪問最終靜態變量

感謝先進! 喬恩

+2

您不需要構造函數就可以訪問靜態變量。 – 2011-03-23 13:44:04

+0

可能的重複http://stackoverflow.com/questions/850148/accessing-java-static-final-ivar-value-through-reflection – Simeon 2011-03-23 14:17:47

回答

3

這就是你需要:

Field field = R.id.class.getField("some_var"); 
int value = field.getInt(null); 
+2

關鍵是你可以傳遞「null」給get方法來訪問靜態成員。 – Arne 2011-03-23 14:12:51

+0

@Arne,感謝您的評論! – 2011-03-23 14:15:55

+0

謝謝!我已經嘗試過,但是我得到一個空指針異常,讓我得到代碼併發布它...謝謝! – Jon 2011-03-23 19:26:32