java - 为什么这个类无法编译?

标签 java

public class Foo<E> implements Comparable<E> {
    E a ;
    public Foo ( E a ) {
        this.a =a;
    }
    public int compareTo ( E b ) {
        return a.compareTo ( b ) ;
    }
}

不知道为什么这些代码无法编译。

最佳答案

泛型参数E不保证有compareTo方法,因此会编译失败。

如果添加一些约束,保证 E 具有 compareTo 方法,那么它将编译。

public class Foo<E extends Comparable<? super E>>

关于java - 为什么这个类无法编译?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40371643/

相关文章:

JavaFx:如何实现动态 Gridpane?

java - Apache felix 阻止了一个事件 - 如何删除它?

java - 所有 "objects"一个缓存还是每种类型一个缓存? - 带缓存的网络应用程序( Guava )

java - 变量(函数类型)参数计数和变量返回类型

java - Java 泛型、集合接口(interface)和对象类的问题

java - Spring MVC 文件上传返回空值

java - 根据 DispatcherServlet 使用 ContextLoaderListener

java - Java/POSIX 正则表达式中是否有 `{\pGraph}` 的 Unicode 等效项?

java - 通过浏览器代理详细信息识别用户?

java - 部署简单的 Java Spark Web 应用程序