我如何告诉 Java 接口实现了 Comparable?

How do I tell Java that an interface implements Comparable?

我有一个名为 IDebt 的接口,还有一个 class 实现了名为 Debt.

的接口

我还有一个由实现 IDebt 接口的对象组成的列表:

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

classDebt 实现 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;
        }
    });

使您的 IDept 接口扩展 Comparable

interface IDept extends Comparable{
    ....
}

接口可以扩展其他接口。