public static void main(String args[])
{
int[] intarray = {1, 3, 6, 8, 2, 6};
String[] names = {"String1", "String2", "String3", "String4", "String5", "String6"};
printMe(intarray);
}
public static <T> void printMe(T[] i){
for(T x: i)
{
System.out.println(x);
}
}
为什么编译此代码会导致此错误?
The method printMe(T[]) is not applicable for the arguments (int[])
如果我做printMe(names)
那么它就可以了。
答案 0 :(得分:4)
因为它的数组int
不是Integer
,所以它期待那里的课程
答案 1 :(得分:1)
简单。泛型适用于基于Object
的数据类型,而不适用于primitives
。
答案 2 :(得分:1)
简单。泛型用于基于对象的数据类型,而不用于基元。 在String数组的情况下,它是类型转换为对象类型,如果int数组自动它不被转换为Object类型,所以要么明确地包含另一个方法或使其成为Integer。