我不断收到错误
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> { /*...*/ }