我正在重建Java 6中的一些代码。对于以下内容,我在Eclipse中收到带有红色下划线的警告:
List<LineItem> lineItemList = new ArrayList<LineItem>();
lineItemList.sort(new LineItem.FullLineItemComparator());
The method sort(LineItem.FullLineItemComparator) is undefined for the type List<LineItem>
目前。 .sort(...
Eclipse建议:
((Object) lineItemList).sort(new LineItem.FullLineItemComparator());
这不会删除警告,代码也无法编译。
FullLineItemComparator:
static class FullLineItemComparator implements Comparator<LineItem>
{
public int compare(LineItem c1, LineItem c2)
{
int result;
result = c1.initials.compareTo(c2.initials);
if (result != 0) {
return result;
}
result = c1.date.compareTo(c2.date);
if (result != 0) {
return result;
}
result = c1.timeStart.compareTo(c2.timeStart);
if (result != 0) {
return result;
}
result = c1.timeEnd.compareTo(c2.timeEnd);
if (result != 0) {
return -result;
}
return 0;
}
}
您认为代码有什么问题吗?
答案 0 :(得分:2)
在Java 8中添加了sort
List
方法,它在Java 6中不存在。
在Java 6中,您可以使用Collections.sort
:
Collections.sort(lineItemList, new LineItem.FullLineItemComparator());
答案 1 :(得分:1)
如何在java中从JCF对列表进行排序的正确方法是在集合中使用静态方法。
Collections.sort(lineItemList, new LineItem.FullLineItemComparator());