我有一个Java方法,它作为输入,一个通用数组:
void insertionSort(T[] data) {
T sortValuePointer;
for (int i = 1; i < data.length; i++) {
sortValuePointer = data[i];
int j = i;
while (j > 0 && compare(sortValuePointer,data[j - 1]) < 0) {
data[j] = data[j - 1];
j--;
}
data[j] = sortValuePointer;
}
}
我有一个创建如下的数组:
T[] temp= (T[]) Array.newInstance(t, 5);
将T类作为输入:
Class<T> t;
insertSort方法位于InsertionSort类中。所以我无法拨打以下电话:
insertionSort.insertionSort(temp);
我收到以下编译时错误: 线程“main”中的异常java.lang.Error:未解决的编译问题:
The method insertionSort(Integer[]) in the type InsertionSort<Integer> is not applicable for the arguments (T[])
答案 0 :(得分:0)
我解决了这个问题。问题是我正在使用特定类型创建父类!就我而言,这是:
InsertionSort<Integer> insertionSort = new InsertionSort<Integer>();
它应该是:
InsertionSort<T> insertionSort = new InsertionSort<T>();
这解决了它。