我有一个包含 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
提交
取消