我有一个对象列表,其中包含不同类型的对象,但单个属性在所有对象中都很常见。
列表包含Field类,Button类,Page类等对象,但所有属性之间都具有一个共同点,即“sequence_no”和
我想基于“sequence_no”对该列表进行排序。

最佳答案

我建议使用方法Sequenceable创建一个类似于“getSequenceNo()”的接口。

public interface Sequenceable {
    int getSequenceNo();
}

您的FieldButtonPage类应实现此接口,并且getSequenceNo()方法将返回sequence_no

然后,您可以实现自己的Comparator并使用此比较器进行排序。

例如,您的比较器将如下所示:
class MyComparator implements Comparator<Sequenceable> {

    @Override
    public int compare(Sequenceable o1, Sequenceable o2) {
        return o2.getSequenceNo() - o1.getSequenceNo();
    }
}

然后您可以排序:
Collections.sort(list, new MyComparator());

10-06 00:36