Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java泛型:类型由未实现的接口绑定_Java_Generics - Fatal编程技术网

Java泛型:类型由未实现的接口绑定

Java泛型:类型由未实现的接口绑定,java,generics,Java,Generics,我正在阅读关于泛型的java文档。在该页上,代码错误: public static <T> int countGreaterThan(T[] anArray, T elem) { int count = 0; for (T e : anArray) if (e > elem) // compiler error ++count; return count; } public static int countgr

我正在阅读关于泛型的java文档。在该页上,代码错误:

public static <T> int countGreaterThan(T[] anArray, T elem) {
    int count = 0;
    for (T e : anArray)
        if (e > elem)  // compiler error
            ++count;
    return count;
}
public static int countgreater大于(T[]数组,T元素){
整数计数=0;
对于(T e:anArray)
if(e>elem)//编译器错误
++计数;
返回计数;
}
更正为:

public interface Comparable<T> {
    public int compareTo(T o);
}

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;
}
公共接口{
公共国际比较(TO);
}
公共静态整数大于(T[]数组,T元素){
整数计数=0;
对于(T e:anArray)
如果(例如,与(元素)>0相比)
++计数;
返回计数;
}

我在页面上没有看到
Compariable
接口的实现。我想它应该被实现,只是它被忽略了。我的猜测正确吗?

Comparable
接口应该由类
T
实现,该类将使用
countgreether
方法。

因为
Comparable
是内置的,是Java运行时库的一部分。请参阅javadoc,或者可能我误解了您的问题,因此:“可比较接口的实现”您无法看到实现,因为实现将是
t
表示的类的一部分,不管它是什么。如果您想查看一个示例,只需找到实现
Comparable
的任何类,例如
String
Integer
LocalDateTime
。。。如果您查看任何此类的源代码,您将看到
compareTo
方法的实现。实现<代码>可比<代码>的每个类可能都有自己的单独实现。没有单一的实现可供查看at@Andreas非常感谢。我的问题是文档页面上的代码是否完全正常工作。如果Comparable是内置的,那么为什么他们在那里编写它的定义,而不是发布到实际接口的链接呢?很可能是为了方便您,所以您不必去其他地方查找。任何声明实现接口的类都必须实现接口的方法,无论接口是内置的还是自定义的。内置接口没有什么特别之处。