Java 将int[][]作为泛型参数传递 publicstaticvoidfunc1(T[]arr){ ... }
Java 将int[][]作为泛型参数传递 publicstaticvoidfunc1(T[]arr){ ... },java,generics,methods,parameters,parameter-passing,Java,Generics,Methods,Parameters,Parameter Passing,publicstaticvoidfunc2(T[]arr){ ... } 我试图传递一个二维数组,int[][]arr 我不能使用func1(arr),但我可以使用func2(arr) 有人能解释一下这是如何工作的吗?T[]表示一些通用对象的数组。任何数组类型(包括int[])都是对象。因此,int[][]在T=int[]时是有效的T[] 但是,由于int不是对象,int[][]不是有效的T[][]如果使用Integer而不是int,您应该能够: 使用Integer[]arr调用func1
publicstaticvoidfunc2(T[]arr){
...
}
我试图传递一个二维数组,int[][]arr
我不能使用func1(arr)
,但我可以使用func2(arr)
有人能解释一下这是如何工作的吗?
T[]
表示一些通用对象的数组。任何数组类型(包括int[]
)都是对象。因此,int[][]
在T=int[]
时是有效的T[]
但是,由于
int
不是对象,int[][]
不是有效的T[][]
如果使用Integer
而不是int
,您应该能够:
- 使用
Integer[]arr调用
func1
- 使用
或Integer[]arr
Integer[]arr调用
func2
public static <T> void func1(T[][] arr) {
...
}
public static <T> void func2(T[] arr) {
...
}