Angenommen, zwei Klassen A und B haben ein gemeinsames Attribut Datum. Ich möchte die beiden Listen<A> nach Datum sortieren
Die mir bekannte Methode besteht darin, eine Basisklasse zu schreiben, dann erben A und B diese Basisklasse und rufen dann Collections.sort() zum Sortieren auf.Gibt es eine bessere Möglichkeit oder eine ähnliche Methode, die Reflektion verwendet? Oder gibt es eine vorgefertigte Bibliothek, die verwendet werden kann?
使用上面你说的是较好的方法,1.可以利用java本身提供的api减少了代码量,2.上面的方式在代码风格上也蛮好的。
还有一种思路是
将每A,B类的date提出来并与A,B对象本身建立关联,比如实现一个类Index,Index中有两个属性,date和A,B类对象的引用或者id,每个A,B类对象关联一个Index对象,然后对Index对象排序,然后通过id找到对应A或B的对象,同index对象一样的顺序,即排好序。
弄一个Base Class,A、B extends之
弄一个Interface,A、B implements之
弄一个List<Object>,然后sort之,Comparator里面需要强转类型
弄一个Wrapper class,包装A、B,然后放在List中,sort之