方法sort(LineItem.FullLineItemComparator)未定义类型List <lineitem>

时间:2017-05-22 08:57:18

标签: java eclipse sorting

我正在重建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;
        }
    }

您认为代码有什么问题吗?

2 个答案:

答案 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());