java - 将泛型数组传递给采用泛型数组的方法

标签 java arrays generics methods

我有一个 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;

并且方法insertionSort位于InsertionSort类中。所以我无法调用如下电话:

 insertionSort.insertionSort(temp);

我收到以下编译时错误: 线程“main”java.lang.Error 中出现异常: Unresolved 编译问题:

The method insertionSort(Integer[]) in the type InsertionSort<Integer> is not applicable for the arguments (T[])

最佳答案

我解决了这个问题。问题是我正在使用特定类型创建父类!就我而言,这是:

InsertionSort<Integer> insertionSort = new InsertionSort<Integer>();

本来应该是:

InsertionSort<T> insertionSort = new InsertionSort<T>();

这解决了问题。

关于java - 将泛型数组传递给采用泛型数组的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33532420/

相关文章:

java - HttpPost写入body以及请求参数

java - 如何将二维数组存储在常规数组中? java

java - ClassCastException 与带有泛型的 java 列表迭代器

c# - 获取泛型数组中元素的Type

java - Toast 未显示 - 用 genymotion 模拟

java - 根据分隔符分割字符串

java - 是否可以让线程在其自身内部 hibernate ?

javascript - 无法访问nodejs中的数组值

javascript - 通过单击 React 删除映射元素

java - 为另一个构造函数提供类型变量值