Java 创建与传递给方法的类型相同的数组
我在java中有一个sorter类,它接受一组可比较的对象并对它们进行排序。我需要为排序创建一个临时数组(这是合并排序),并且数组的类型必须与传入的类型相同(我想?),无论我做什么,eclipse都会发出各种警告 我的方法声明是Java 创建与传递给方法的类型相同的数组,java,generics,Java,Generics,我在java中有一个sorter类,它接受一组可比较的对象并对它们进行排序。我需要为排序创建一个临时数组(这是合并排序),并且数组的类型必须与传入的类型相同(我想?),无论我做什么,eclipse都会发出各种警告 我的方法声明是 public <E extends Comparable<? super E>> void sort(E[] data); public此处不需要使用泛型,也不需要创建与参数类型相同类型的临时数组 public void sort(Compar
public <E extends Comparable<? super E>> void sort(E[] data);
public此处不需要使用泛型,也不需要创建与参数类型相同类型的临时数组
public void sort(Comparable[] data) {
Comparable[] temp=new Comparable[data.size()];
...
}
这里不需要使用泛型,也不需要创建与参数类型相同类型的临时数组
public void sort(Comparable[] data) {
Comparable[] temp=new Comparable[data.size()];
...
}
不是教程,但是关于泛型的一个非常深入的FAQ是。你能给出一个给出警告的代码的例子吗?我认为Java教程是学习泛型的最好地方。不是教程,但是关于泛型的一个非常深入的FAQ是。你能给出一个给出警告的代码的例子吗?我认为上的Java教程将是学习泛型的最好地方。你会想在方法中添加@SuppressWarnings(“unchecked”)
,因为我们可以确定该方法是类型安全的,但编译器不能,但最好使用类型变量:Comparable.Correction:data.length而不是data size()。我很确定编译器会抱怨创建泛型数组。我检查过$Dunes,但没有。通配符不是类型变量。您需要向该方法添加@SuppressWarnings(“unchecked”)
,因为我们可以确保该方法是类型安全的,但编译器不能。$Dunes是的,但最好使用类型变量:Comparable。更正:data.length而不是data size().我很肯定编译器会抱怨创建泛型数组。$Dunes我已经检查过了,但没有。通配符不是类型变量。