我有一个名为IDebt的接口(interface),以及一个实现名为Debt的接口(interface)的类。
我还有一个由实现 IDebt 接口(interface)的对象组成的列表:
List<IDebt> debtList = new ArrayList<IDebt>();
类Debt实现了Comparable,但是当我执行Collections.sort(debtList)时,我得到一个错误,因为Java无法知道实现IDebt的对象因此实现了 Comparable。
我该如何解决这个问题?
最佳答案
你可以这样做:
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
}
}
然后
List<MyInterface> test = new ArrayList<>();
Collections.sort(test);
可以工作
更新:也用于排序,也许这更有意义:
Collections.sort(test, new Comparator<MyInterface >() {
@Override
public int compare(MyInterface lhs, MyInterface rhs) {
return 0;
}
});
关于java - 如何告诉 Java 接口(interface)实现了 Comparable?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36924998/