所以我想知道如何创建一个泛型方法,当传递给定类型的数组时,将返回相同类型的数组。我目前正在使用的代码如下所示:
public class InsertionSort<T extends Comparable<T>> extends Sort<T>
{
public T[] sort (T[] data)
{
for (int index = 1; index < data.length; index++)
{
T key = data[index];
int position = index;
/* Shift larger values to the right */
while (position > 0 && data[position-1].compareTo(key) > 0)
{
data[position] = data[position-1];
position--;
}
data[position] = key;
}
return data;
}
}
问题:当我将一个 Integer[] 数组作为参数传递给此方法时,它会以基本 Comparable[] 或 Object[] 数组而不是 Integer[] 的形式返回数据。有没有办法改变它,如果它传递一个 Integer[] 数组,它会对其进行排序并返回一个 Integer[] 数组,但如果它传递一个 String[] 数组,它会对其进行排序并返回一个字符串 [] 的数组?(对于实现 Comparable 的任何其他类型,依此类推)