我正在尝试根据对象的DateTime对对象数组进行排序。我使用以下示例来创建我的解决方案:
Sort objects in ArrayList by date?
我使用的方法如下:
List<SomeEvent> myEvents = new ArrayList<>();
//...
//left out the part where the List is filled with Objects
//...
Collections.sort(myEvents, new Comparator<SomeEvent>() {
public int compare(SomeEvent se1, SomeEvent se2) {
return se1.getStartTime().compareTo(se2.getStartTime());
}
});
我收到错误消息“无法解析方法”compareTo(com.google.api.client.util.DateTime)'
关于我缺少什么的任何指示?
编辑: 我的类SomeEvent现在按照建议实现Comparable:
public class SomeEvent extends SomeTask implements Comparable<SomeEvent>
{
private DateTime startTime;
private DateTime endTime;
public DateTime getStartTime() {
return startTime;
}
public DateTime getEndTime() {
return endTime;
}
}
然而,现在,我得到的提示是我需要将我的类声明为抽象(在使用它的上下文中是不可能的)或者在'Comparable'中实现抽象方法'compareTo(T)'。 / p>
如何实现抽象方法?
答案 0 :(得分:1)
你能试试吗
Collections.sort(myEvents, new Comparator<SomeEvent>() {
public int compare(SomeEvent se1, SomeEvent se2) {
return (int) (se1.getStartTime().getValue() - se2.getStartTime().getValue());
}
});
因此,我知道,您使用的不是java.util.Date,compareTo
方法存在,而是com.google.api.client.util.DateTime,其中没有compareTo
方法。