ArrayList list =new ArrayList<>();

list.add(1);

list.add(5);

list.add(2);

list.add(null);

以上面的一段代码为例:集合里规定,泛型里面只能给的类型是引用的类型,这就是为啥我们写 int 就会报错的原因。但是为啥允许为 null, 因为 Interger 是一个类,对象的值允许为空,但是我们给的是数字呀,也没有创建对象呀,奥妙之处就在于包装类有自动装箱的功能(这句话不太对,是 jvm 提供了自动装箱的算法),将数字作为我们创建一个 Integer 对象的构造方法的一个参数。所以 ArrayList 集合中允许为空值。

转载于: https://my.oschina.net/u/2511906/blog/3100263