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

Ich weiß nicht, warum diese Codes nicht kompiliert werden können.Warum kann diese Klasse nicht kompiliert werden?

+0

Was ist 'E', haben Sie auch die Datei überprüft .java haben den gleichen Namen wie die Klasse? –

Antwort

1

Der generische Parameter E garantiert nicht compareTo Methode, so dass es nicht kompilieren wird.

Wenn Sie eine Einschränkung hinzufügen, damit E garantiert compareTo Methode ist, dann wird es kompilieren.

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

Verwenden Sie keine Rohtypen. Es sollte 'Foo >'. – shmosel

+0

@shmosel Bearbeitet. Vielen Dank. –

Verwandte Themen