以下代码的结果:
public class ListIntegerDemo1 {
public static void addToList(List list) {list.add("0067");list.add("bb");}
public static void main(String[] args) {
List<Integer> list = new ArrayList<>();
addToList(list);
System.out.println(list.get(0));
}
}
是"0067"
。
我原本期望一个RuntimeException或者类似的,因为我在整数列表中添加了一个String。
为什么它没有任何问题?
答案 0 :(得分:9)
在运行时,通用类型参数将被删除,因此List<Integer>
变为List
,您可以向其添加任何引用类型。
如果将addToList(List list)
更改为addToList(List<Integer> list)
,编译器将阻止您在此方法中将字符串添加到该列表。