[英]Sorting list of objects on datetime (cannot resolve method 'compareTo')
我正在尝试根据对象的DateTime对对象数组进行排序。 我使用以下示例创建了我的解决方案:
我使用的方法如下所示:
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;
}
}
但是,现在我得到的提示是,我需要将我的类声明为抽象类(在使用它的上下文中是不可能的),或者在“可比较”中实现抽象方法“ compareTo(T)”。
如何实现抽象方法?
你可以试试这个吗
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
方法)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.