为了简单起见,我试图将两个不同对象的列表组合在一起,我将它们称为List<A>
和List<B>
最后按它们的日期值对组合列表进行排序。我在这里看到了大部分答案,但它们没有展示如何正确实现此类用例的全貌。
我用一种String getDate()
方法创建了一个接口。这样我Class A
和Class B
两个 imeplement 说接口。
public interface CustomInterface {
String getDate();
}
然后我创建了一个 CustomComparator 类:
public class CustomComparator implements Comparator<CustomInterface> {
@Override
public int compare(CustomInterfacet1, CustomInterface t2) {
return t1.getDate().compareTo(t2.getDate());
}
}
我还实现了一个自定义类,它处理两个给定列表的合并和排序。我们将称之为Class Merge
。使用下面实现的方法。
public List<Object> sortedAndMergedData(List<A> a, List<B> b) {
List<Object> x= new ArrayList<>();
x.addAll(a);
x.addAll(b);
Collections.sort(x, new CustomComprator());
return x;
}
这就是问题所在,因为我收到一个错误,“原因:不存在类型变量的实例,因此对象符合接口” Collections.sort(x, new CustomComprator());
更改List<Object>
到 List<CustomInterface>
在
List<Object> x= new ArrayList<>();
前提是你A
和B
班级implements CustomInterface
public List<CustomInterface> sortedAndMergedData(List<A> a, List<B> b) {
List<CustomInterface> x= new ArrayList<>();
x.addAll(a);
x.addAll(b);
Collections.sort(x, new CustomComprator());
return x;
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句