2013-04-06 108 views
0

我有一個Object類的實例(例如obj)。從java中的數組讀取元素

通過使用obj.getClass().isArray()我可以確認它是一個數組。

現在我想訪問此數組的元素(如obj[0]或類似的東西)。 是否可以這樣做?

請幫

+1

將其轉換爲對象數組。那麼你可能會做到這一點。但是這聽起來很糟糕。是什麼讓你以這種方式設計你的代碼? – 2013-04-06 06:21:33

+0

我必須從servlet請求範圍讀取數據,如果結果是數組,我必須返回它的第一個元素。投射到對象[]正在爲我工​​作。這種方式效率不高嗎? – S4beR 2013-04-06 07:38:57

回答

0

簡單地將其轉換爲Object陣列。

(Object[])obj[0]; 
+0

如果數組是int [],該怎麼辦? – 2013-04-06 06:47:04

0

校驗代碼如下:

Object array = new String[]{"abc","def"}; 
    if(array.getClass().isArray()){ 
     Object[] aaa = (Object[])array; 
     System.out.println(aaa[0]); 
    } 

任何非原始陣列可向上轉換到Object[]

0

java.lang.reflect.Array提供方法來動態地訪問數組元素。您可以使用Array.get(Object array, int index)來讀取元素,並使用Array.getLength(Object array)來獲取它的長度。