Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何接受int[]作为泛型类型参数而不是int?_Java_Arrays_Generics_Inheritance - Fatal编程技术网

Java 如何接受int[]作为泛型类型参数而不是int?

Java 如何接受int[]作为泛型类型参数而不是int?,java,arrays,generics,inheritance,Java,Arrays,Generics,Inheritance,我注意到,我们可以创建泛型,类型参数为int[]但不能创建int 我发现泛型G的类型参数T应该是Object类的子类 因为基元类型不是对象类的子类,所以它们不能用作泛型的参数类型 但我还有一些疑问: 如何使用基元数组作为泛型类型参数 基元/引用类型数组是否扩展对象类 数组是一种特殊类型的类,不能用作普通类吗 是否还有其他特殊类,如数组。(如果这个问题的答案非常广泛,那么忽略这个问题) 我环顾四周,发现数组实际上是扩展对象的类。(我们使用new关键字创建一个数组) 但是我找不到其余问题的答案。ja

我注意到,我们可以创建泛型,类型参数为
int[]
但不能创建
int

我发现泛型
G
的类型参数
T
应该是Object类的子类

因为基元类型不是对象类的子类,所以它们不能用作泛型的参数类型

但我还有一些疑问:

  • 如何使用基元数组作为泛型类型参数
  • 基元/引用类型数组是否扩展对象类
  • 数组是一种特殊类型的类,不能用作普通类吗
  • 是否还有其他特殊类,如数组。(如果这个问题的答案非常广泛,那么忽略这个问题)
  • 我环顾四周,发现数组实际上是扩展对象的类。(我们使用new关键字创建一个数组)


    但是我找不到其余问题的答案。

    java中有两类类型:基元类型和引用类型(即对象)

    类型(无论是基元数组还是对象数组)始终是引用类型。数组类型的变量保存对
    对象的引用

    基元数组仍然是
    对象
    , 例如,
    int[]
    对象的子类型。您可以在
    int[]
    上调用
    Object
    中的任何方法


    泛型可以保存任何非基元类型的内容。数组不是基元类型,因此允许使用
    集合
    。请参阅:

    基元类型的数组实际上是一个对象。这样的数组可以在任何可以使用对象的地方使用。数组具有公共
    length
    属性,该属性返回数组的长度

    数组不能扩展,但对于任何类型的
    T
    都存在
    T[]
    。数组或多或少有点特殊,是的


    另一个特殊的类是
    Enum
    类。

    那么我们如何使用基元数组呢?
    -使用它的目的是什么?您的第一个问题是不是想说“既然基元不能用作泛型类型,为什么我们可以将基元数组用作泛型类型?”这是因为
    int[]
    是Java中的一个对象。“您可以在int[]上调用Object中的任何方法。”这是真的,但它们基本上都是无用的(例如,toString、equals、hashCode等几乎肯定不会执行您想要的操作)。