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

为什么java.util.ArrayList中不允许原始数据类型?,java,arraylist,Java,Arraylist,可能重复: ArrayList只接受引用类型作为其元素,而不接受基元数据类型。 当尝试这样做时,它会产生编译时错误 这背后的概念是什么?这似乎是一个限制,不是吗?因为Java只能对泛型(介于)使用类(而不是基元类型)和数组(也可以是基元数组) 名单;这也是原语类型有包装器类的原因: 整数->整数 布尔->布尔 双人->双人 字节->字节等 java的所有集合类都存储它们所收集对象的内存位置。基本值不符合相同的定义。 为了避免这个问题,JDK5及其以后的版本有自动装箱——其中原语被转换为适当的对

可能重复:

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


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

因为Java只能对泛型(介于<和>)使用类(而不是基元类型)和数组(也可以是基元数组)

名单;这也是原语类型有包装器类的原因:

整数->整数

布尔->布尔

双人->双人

字节->字节等


java的所有集合类都存储它们所收集对象的内存位置。基本值不符合相同的定义。
为了避免这个问题,JDK5及其以后的版本有自动装箱——其中原语被转换为适当的对象,并在添加或从集合中读取时被转换回原语。请参阅有关此主题的


检查有助于更好地理解:创建
ArrayList
包括将
对象[]
数组强制转换为
E[]

请参阅。。。这本身就是一种特殊情况。虽然在前泛型时代,您仍然不能将基元类型用于集合,因为基元没有通用的基类型。这并不能真正回答为什么“Java不能在ArrayList中使用基元类型,因为它只能在ArrayList中使用类”不能解决为什么不能使用基元类型的问题。特别是当问题的措辞表明提问者理解问题时,它只接受引用类型。