【发布时间】:2014-06-05 17:35:19
【问题描述】:
我有一个包含数组的泛型类。该数组可以是任何数据类型(Double,Integer,String ...),我正在尝试学习如何在构造后对该数组进行排序。我写了一个排序方法,用于在构造后对数组进行排序。但是,由于不匹配,java 禁止使用 mysort 方法对泛型数组进行排序。
public class SortingTest<E> {
private E[] array;
//constructor which creates an object and sorts its array via mysort method.
public SortingTest(E[] N){
this.array = N;
mysort(this.array);
}
//sorts array.
private static<T extends Comparable<T>> void mysort(T[] arr){
T temp = null;
//Bubble sort increasing order.
for(int j=0; j<arr.length; j++){
for(int i=1; i<arr.length; i++){
if(arr[i-1].compareTo(arr[i]) > 0 ){
temp = arr[i-1];
arr[i-1] = arr[i];
arr[i] = temp;
}
}
}
}
}
我该如何克服这个问题?任何帮助表示赞赏。
【问题讨论】:
-
想想你在构造函数中传递给
mysort(..)的内容。它是什么类型的?它是否与方法设置的界限相匹配。 -
它可以是我所说的任何类型。 @Luiggi Mendoza 解决了由 Comparable 接口的未知实现引起的问题,非常感谢您的帮助。
-
顺便说一句,请注意泛型和数组不能很好地配合使用。使用
Lists 和 Collections Framework 的其余部分,您将有更好的时间。
标签: java arrays sorting generics interface