2016-04-28 12 views
-1

Ich habe eine Schnittstelle mit dem Namen IDebt, und eine Klasse, die diese Schnittstelle namens Debt implementieren.Wie sage ich Java, dass eine Schnittstelle Comparable implementiert?

Ich habe auch eine Liste von Objekten, die Umsetzung der IDebt Schnittstelle gemacht:

List<IDebt> debtList = new ArrayList<IDebt>(); 

Die Klasse Debt implementiert Vergleichbar, aber wenn ich Collections.sort (debtList) tun ich eine Fehlermeldung erhalten, weil Java kann nicht wissen, dass das Objekt, das IDebt als solches implementiert, Comparable implementiert.

Wie kann ich das lösen?

+1

Sie können nicht. Deine 'List' könnte' SpiderDept' enthalten, was nichts "implementiert" ... –

+0

Sollen alle 'IDebt' mit allen anderen' IDebt 'verglichen werden? (Insbesondere sollten Instanzen von zwei verschiedenen Implementierungen miteinander vergleichbar sein?) – user2357112

+0

Siehe die Bruchlinienantwort. TLDR: IDebt erweitert die Vergleichsschnittstelle. – DwB

Antwort

2

Sie können dies tun:

public static interface MyInterface extends Comparable<MyInterface> { 

} 

public static class MyClass implements MyInterface { 

    @Override 
    public int compareTo(MyInterface another) { 
     return 0; //write a comparison method here 
    } 
} 

Dann

List<MyInterface> test = new ArrayList<>(); 
Collections.sort(test); 

arbeiten

Update: auch für die Sortierung vielleicht macht dies mehr Sinn:

Collections.sort(test, new Comparator<MyInterface >() { 
     @Override 
     public int compare(MyInterface lhs, MyInterface rhs) { 
      return 0; 
     } 
    }); 
+0

Das funktioniert. Vielen Dank. – Forset1

+0

Dann stellt sich die Frage, wie Sie mit verschiedenen Objekten vergleichen. –

+0

Sie können einen tatsächlichen Komparator zum Sortieren verwenden, normalerweise mache ich das, ich werde meine Antwort aktualisieren – breakline

0

Machen Sie Ihre IDept Schnittstelle erweitern Comparable

interface IDept extends Comparable{ 
    .... 
} 

Schnittstellen andere Schnittstellen erweitern können.

Verwandte Themen