原始数组作为通用参数

时间:2016-03-11 20:11:37

标签: java

我知道创建List<int>是不可能的,因为int是基本类型。但是,我想知道为什么我可以创建List<int[]>。基本上,我的问题是为什么Java中可能有Collection<primitive_type_array>

4 个答案:

答案 0 :(得分:3)

数组是一个对象。请注意如何在其上调用标准的Object方法?同样,您可以使用新关键字初始化它。

答案 1 :(得分:2)

泛型可以包含任何非原始类型的东西。数组不是原始类型,因此允许Collection<int[]>。请参阅:https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html

答案 2 :(得分:2)

根据Java Language Specification

  

在Java编程语言中,数组是对象(§4.3.1),是动态创建的,可以分配给Object类型的变量(§4.3.2)。可以在数组上调用Object类的所有方法。

答案 3 :(得分:-1)

因为array是一个对象,它本身保存对其他对象或基本类型的引用。 https://docs.oracle.com/javase/specs/jls/se7/html/jls-10.html