2016-11-02 72 views
0
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) ; 
    } 
} 

我不知道爲什麼這些代碼無法編譯。爲什麼這個類不能被編譯?

+0

什麼是'E',你是否也檢查過該文件.java和這個類有相同的名字? –

回答

1

通用參數E不保證有compareTo方法,所以它將無法編譯。

如果你添加一些約束,所以E保證有compareTo方法,那麼它會編譯。

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

請勿使用原始類型。它應該是'Foo >'。 – shmosel

+0

@shmosel編輯。謝謝。 –