【发布时间】:2021-11-06 17:43:29
【问题描述】:
更新:
我在从 Oracle Java 教程学习 Java 泛型时出现了这个问题,代码来自 https://docs.oracle.com/javase/tutorial/java/generics/boundedTypeParams.html,这导致我出现以下错误。我当时并不知道 Java 已经有了 Comparable 接口。在我删除自己的 Comparable 接口后问题就解决了。
原帖:
我无法修复以下代码中的错误。我在 Eclipse 2021-09 上使用 JavaSE-16
public class GenericMethodsAndBoundedTypeParameters {
public static void main(String[] args) {
int a = countGreaterThan(new Integer[] {1, 2, 3, 4, 5}, (Integer)(2));
}
public static <T extends Comparable<T>> int countGreaterThan(T[] anArray, T elem) {
int count = 0;
for(T e : anArray) {
if(e.compareTo(elem) > 0) {
++count;
}
}
return count;
}
}
interface Comparable<T> {
public int compareTo(T obj);
}
错误信息如下所示:
GenericMethodsAndBoundedTypeParameters 类型中的方法countGreaterThan(T[], T) 不适用于参数(Integer[], Integer)
【问题讨论】:
-
您似乎已经声明了自己的
Comparable<T>接口。 不要