首页 > 解决方案 > 如何在 Java 的 Arraylist 中访问 Object[] 中的值

问题描述

我有一个里面有 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'

我想我错过了一些非常简单的东西。帮助会很好,谢谢。

标签: javaarrayslistobjectarraylist

解决方案


你这样声明你的列表:

List<Object> trackList;

所以当你这样做时:

trackList.get(0)

这会让你得到一个Object而不是一个Object[].

你需要投射它:

((Object[])trackList.get(0))[1]

但是你有另一个问题,因为上面的表达式返回你 anObject并且你想将它分配给 an Integer

所以你需要另一个演员..完整的行应该是:

Integer value1 = (Integer)((Object[])trackList.get(0))[1];

顺便说一句,只声明列表以包含您将实际放入其中的内容会更容易。


推荐阅读