java - 方法(E[])不适用于参数(int[])

标签 java arrays generics

<分区>

我正在尝试在我的 int[] 上实现我的排序方法,该方法采用通用 E[] 作为参数。我收到错误:

The method sort(E[]) in the type HeapSort is not applicable for the arguments (int[]).

我的代码如下:

public <E extends Comparable<E>> void sort(E[] array){

//my code

}

public static void main(String[] args){
    int[] arr = new int[30];
    for(int rep = 0; rep < arr.length; rep++){
        arr[rep] =(int )(Math.random() * 100 + 0);
    }

    System.out.println("The unsorted Array: ");
    System.out.println(sort(arr).toString());
}

关于我为什么会收到此错误的任何想法?所有帮助表示赞赏!谢谢!

最佳答案

原始类型不能替换通用类型参数(即使可以,它也不能满足您的 extends Comparable<E> 类型绑定(bind),因为原始类型不扩展任何类并且不实现任何接口(interface)) .

您可以替换您的 int[]Integer[]它将起作用。

除了那个错误,sort(arr)不返回任何东西,所以你不能执行 toString在上面。

您可以将其替换为:

new HeapSort ().sort(arr); // you must create an instance of the class that contains
                           // the sort method in order to call it
System.out.println(Arrays.toString(arr));

关于java - 方法(E[])不适用于参数(int[]),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35695800/

相关文章:

java - NoClassDefFound错误: org/apache/commons/io/output/DeferredFileOutputStream in uploading file with SpringMVC/Wildfly/CentOS

python - 将 bytearray 从 VARBINARY(16) 列转换为 IP 地址

javascript - 使用nodejs查找对象数组中的特定键值

delphi - 如何检查某项是否支持通用接口(interface)?

c# - Lambda 表达式以及如何组合它们?

java - 错误 :Execution failed for task : java. util.zip.ZipException : duplicate entry: android/support/v4/graphics/BitmapCompat. 类

java - 无法在 RequestConfig 中将套接字超时设置为小于 1000 毫秒(Apache HTTP 异步客户端 4.1.2)

java - 从(子)目录中的文件读取文本

PHP 内爆 explode 第一个和最后一个数组值

java - Android 和 Guice - 注入(inject)通用类型类?