我不断收到错误

The method sort(List<T>, Comparator<? super T>) in the type Collections is not applicable for the arguments (List<InterfaceMessage>, Folder.CustomComparator)


在代码上...

@Override
public void sortByDate(boolean ascending) {
    Collections.sort(messageList, new CustomComparator());
}

class CustomComparator implements Comparator<Message> {
    public int compare(Message message1, Message message2) {
        return message1.getDate().compareTo(message2.getDate());
    }
}


我正在尝试比较列表中每个对象内的日期,以按其日期对它们进行排序。我是比较器的新手,但是我已经看到许多示例,但是我的示例似乎不起作用吗?我知道我还没有对“升序”做任何事情,我只是想让基本的比较器正常工作。

任何帮助表示赞赏,谢谢:)

最佳答案

从错误消息中,变量messageList必须定义为List<InterfaceMessage>。但是,您的比较器使用类Message,它可能是InterfaceMessage的实现。但是,可能还有其他实现。因此,比较器无法可靠地处理messageList的元素。

如评论中所建议,解决方案是:

class CustomComparator implements Comparator<InterfaceMessage> { /*...*/ }

07-24 09:21