将字符串添加到List <integer>

时间:2015-04-28 13:01:11

标签: java generics

以下代码的结果:

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。

为什么它没有任何问题?

1 个答案:

答案 0 :(得分:9)

在运行时,通用类型参数将被删除,因此List<Integer>变为List,您可以向其添加任何引用类型。

如果将addToList(List list)更改为addToList(List<Integer> list),编译器将阻止您在此方法中将字符串添加到该列表。