为什么原始数据类型在java.util.ArrayList中不允许?

问题描述:

可能重复:
Storing primitive values in a Java collection?为什么原始数据类型在java.util.ArrayList中不允许?

ArrayList中只接受引用类型作为其元素,而不是原始数据类型。 当试图这样做时,它会产生编译时错误。

这背后是什么概念?这似乎是一个限制,不是吗?

+0

看到[这里](http://stackoverflow.com/questions/2504959/storing-primitive-values-in-a-java-collection) – 2011-03-24 04:55:11

+0

...这本身就是一个特例[为什么你可以' t泛型一般使用原始类型](http://stackoverflow.com/questions/2721546/why-dont-generics-support-primitive-types)。虽然在泛仿制品时代,但您仍然无法使用基本类型与集合,因为基元没有共同的基本类型。 – 2011-03-24 04:57:12

收集的对象的所有java类存储集合类的内存位置。原始值不符合的相同定义。
为了规避这个问题,JDK5及以后版本有自动装箱功能 - 其中基元被转换为适当的对象,并在它们被添加或从集合中读取时返回。

因为Java只能使用泛型(在<和>之间)的类(而不是原始类型)和数组(也是基元的数组)。

List list;这也是之所以有基本类型的包装类:

INT - >整数

布尔 - >布尔

双 - >双

字节 - >字节等。 ..