所以我继续在下一个代码上出错。我不知道我做错了什么。 错误是main类型的方法printArray(T [])不适用于参数(int [])
public class main {
public static void main(String[] args) {
Oefening1 oef = new Oefening1();
int[] integerArray = {1,2,3,4,5};
printArray(integerArray);
}
public static <T> void printArray(T[] arr){
for(T t: arr){
System.out.print(t + " ");
}
System.out.println("");
}
}
答案 0 :(得分:0)
在泛型方面,Java对原始类型和从java.lang.Object
派生的类型有所区别。只有非基本类型才能用作泛型方法的参数。由于int
不是通用的,printArray<T>
不适用于此。
您可以通过为int
提供重载或将integerArray
设为Integer[]
来解决此问题:
Integer[] integerArray = {1,2,3,4,5};
printArray(integerArray);
这样做的原因是Integer
将int
包装在适合传递给泛型的对象中。但是,这会从Java编译器中获得很多帮助,因为当您编写{1,2,3,4,5}
时,它会在场景后面转换为{Integer.valueOf(1), Integer.valueOf(2), Integer.valueOf(3), Integer.valueOf(4), Integer.valueOf(5)}
。
答案 1 :(得分:0)
因为您使用的是原始类型的数据类型。如果使用Integer [] integerArray = {1,2,3,4,5};而不是int [] integerArray = {1,2,3,4,5};。它应该工作。