Java - 具有静态的泛型

时间:2014-05-02 17:02:16

标签: java generics static

坚持应该非常简单的事情。

我有TreeSort类:

public class TreeSort {

    public static <E extends Comparable<? super E>> void sort(E[] nums) {
        //Sorting
    }
}

一个简单的Tester类,主要用于测试方法:

public class Tester {
    public static void main(String[] args) throws TreeStructureException {

        int[] nums = { 11, 2, 8, 30, 12, 21, 6, 4, 3, 18 };
        TreeSort.sort(nums); // The method sort(E[]) in the type TreeSort is not 
                             // applicable for the arguments (int[])
    }

}

为什么会出现此错误?谢谢大家

2 个答案:

答案 0 :(得分:3)

int[] numsObject。您有两种方法可以解决这个问题:

  • 将变量更改为Integer[]

  • 创建另一种方法来支持int[]

如果您没有为家庭作业/锻炼/特定排序算法目的而这样做,请改用Arrays#sort(int[])Arrays#sort(Object[] array)

答案 1 :(得分:2)

原始人和仿制药并不真正兼容。您需要整数[](粗略)或排序应该采用int []。