异构元素列表

时间:2014-02-18 22:49:24

标签: java list arraylist

当我尝试在一个列表中添加两个不同类型的元素时,为什么下面的代码没有出错?

List list1 = new ArrayList<>();
list1.add(1);
list1.add("1");

2 个答案:

答案 0 :(得分:4)

如果您未将列表声明为特定类型,则会将其视为对象列表。

int 1自动装箱为Integer,“1”为String,因此两者都是对象。

答案 1 :(得分:2)

Java 7中它有效。对于以前的版本,您应该提供通用类型。由于您有2个不同的类型实例(IntegerString),因此它们的常见类型为Object,因此您需要声明如下。

List list1 = new ArrayList<Object>();