Java 创建与传递给方法的类型相同的数组

Java 创建与传递给方法的类型相同的数组,java,generics,Java,Generics,我在java中有一个sorter类,它接受一组可比较的对象并对它们进行排序。我需要为排序创建一个临时数组(这是合并排序),并且数组的类型必须与传入的类型相同(我想?),无论我做什么,eclipse都会发出各种警告 我的方法声明是 public <E extends Comparable<? super E>> void sort(E[] data); public此处不需要使用泛型,也不需要创建与参数类型相同类型的临时数组 public void sort(Compar

我在java中有一个sorter类,它接受一组可比较的对象并对它们进行排序。我需要为排序创建一个临时数组(这是合并排序),并且数组的类型必须与传入的类型相同(我想?),无论我做什么,eclipse都会发出各种警告

我的方法声明是

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我已经检查过了,但没有。通配符不是类型变量。