我有一個包含 Object[] 的列表,我想訪問其中一個 Objects[] 的值。這是我的代碼的樣子:private List<Object> trackList;trackList = new ArrayList<>();Integer random = (int)(Math.random() * ((100 - 0) + 1)) + 0;Integer random2 = (int)(Math.random() * ((100 - 0) + 1)) + 0;Object[] currTrack = new Object[]{random1, random2};trackList.add(currTrack);Integer value1 = trackList.get(0)[1];獲取:“預期的數組類型;找到:'java.lang.object'我想我錯過了一些非常簡單的東西。幫助會很好,謝謝。
2 回答

守候你守候我
TA貢獻1802條經驗 獲得超10個贊
你這樣聲明你的列表:
List<Object> trackList;
所以當你這樣做時:
trackList.get(0)
那會讓你 anObject
而不是Object[]
.
你需要施放它:
((Object[])trackList.get(0))[1]
但是你有另一個問題,因為上面的表達式返回給你 anObject
而你想將它分配給 an Integer
。
所以你需要另一個演員......完整的行應該是:
Integer value1 = (Integer)((Object[])trackList.get(0))[1];
順便說一句,只聲明列表以包含您實際要放入其中的內容會更容易。

慕森王
TA貢獻1777條經驗 獲得超3個贊
在您的列表聲明中,您設置該列表包含對象而不是對象[]:
List<Object> trackList;
所以當你這樣做時:
trackList.get(0)
這讓你得到一個 Object 而不是 Object[]
您需要將 List 初始化更改為
List<Object[]> trackList;
添加回答
舉報
0/150
提交
取消