<分区>
我有一个 Map<String, Object>
我在其中存储"test"
和 ArrayList<Integer>
.然后我尝试显示整个数组 testMap.get("test")
这工作正常,但是当我尝试显示不是整个数组而是它的第一个元素时,它失败了 error: cannot find symbol: method get(int)
.
public class Test {
public static void main(String[] args) {
Map<String, Object> testMap = new HashMap<>();
ArrayList<Integer> testArray = new ArrayList<>();
testArray.add(1);
testArray.add(2);
testArray.add(3);
testMap.put("test", testArray);
//works fine, output: [1, 2, 3]
System.out.println(testMap.get("test"));
//get 1st element of testArray, error
System.out.println(testMap.get("test").get(0));
}
}
为什么会发生这种情况以及如何解决?
我猜是类型 Object
在Map
导致它,但我无法将其更改为 ArrayList
因为Map
也应该存储其他类型(如 String
、 Integer
)。所以我尝试了:
System.out.println((ArrayList) testMap.get("test").get(0));
System.out.println(((List<Integer>) testMap.get("test")).get(0))
也没用。
仍然导致错误。