Java不支持使用基元创建集合,因此后续构造会出现编译错误("参数不能是基本类型):
List<int> ints = new ArrayList<int>();
另一方面,允许创建数组或基元的集合,因此以下构造是可以的:
List<int[]> ints = new ArrayList<int[]>();
这背后的逻辑是什么?
编辑:问题实际上是关于基元的数组,而不是基元,所以请不要解释我为什么不能将基元存储在集合中,而是为什么我可以在里面编排基元的数组一个集合?
答案 0 :(得分:5)
收藏品是通用的:Collection<T>
。 T
必须是引用类型。基元不是引用类型。另一方面,基元数组是引用类型,因此您可以将其放入Collection
。请记住,每个原语都有它的包装类,可以作为类型传递给泛型类型。
Type:
PrimitiveType
ReferenceType
如果一个类声明了一个或多个类型变量(§4.4),那么它就是通用的。
#
4.3.1。对象 对象是类实例或数组。
#
4.4。类型变量 类型变量是一个非限定标识符,用作类,接口,方法和构造函数体中的类型。