以下代码的结果:
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));
}
}
Run Code Online (Sandbox Code Playgroud)
是"0067".
我本来期望RuntimeException或类似的,因为我将一个String添加到整数列表.
为什么它没有任何问题?
在运行时,泛型类型参数被删除,因此,List<Integer>变成List了,你可以在任何引用类型添加到它.
如果更改addToList(List list)为addToList(List<Integer> list),则编译器将阻止您在此方法中将字符串添加到该列表.
| 归档时间: |
|
| 查看次数: |
1989 次 |
| 最近记录: |