为什么不能编译这个类?

时间:2016-11-02 02:40:54

标签: 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 ) ;
    }
}

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

1 个答案:

答案 0 :(得分:1)

通用参数E不保证具有compareTo方法,因此无法编译。

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

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