Java datetime上对象的排序列表(无法将方法';compareTo';)解析为
我试图根据对象的日期时间对对象数组进行排序。我使用以下示例创建了我的解决方案: 我使用的方法如下所示:Java datetime上对象的排序列表(无法将方法';compareTo';)解析为,java,sorting,datetime,android-studio,Java,Sorting,Datetime,Android Studio,我试图根据对象的日期时间对对象数组进行排序。我使用以下示例创建了我的解决方案: 我使用的方法如下所示: List<SomeEvent> myEvents = new ArrayList<>(); //... //left out the part where the List is filled with Objects //... Collections.sort(myEvents, new Comparator<SomeEven
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());
}
});
List myEvents=new ArrayList();
//...
//省略列表中填充对象的部分
//...
Collections.sort(myEvents,new Comparator()){
公共int比较(SomeEvent se1,SomeEvent se2){
返回se1.getStartTime().compareTo(se2.getStartTime());
}
});
我收到错误消息“无法解析方法'compareTo(com.google.api.client.util.DateTime)”
有没有关于我遗漏了什么的指示
编辑:
我的类SomeEvent现在实现了建议的可比性:
public class SomeEvent extends SomeTask implements Comparable<SomeEvent>
{
private DateTime startTime;
private DateTime endTime;
public DateTime getStartTime() {
return startTime;
}
public DateTime getEndTime() {
return endTime;
}
}
公共类SomeEvent扩展了SomeTask
{
私人日期时间开始时间;
私有日期时间结束时间;
public DateTime getStartTime(){
返回起始时间;
}
公共日期时间getEndTime(){
返回结束时间;
}
}
然而,现在我得到一个提示,我需要将我的类声明为抽象类(这在使用它的上下文中是不可能的),或者在“Comparable”中实现抽象方法“compareTo(T)”
如何实现抽象方法?您能试试这个吗
Collections.sort(myEvents, new Comparator<SomeEvent>() {
public int compare(SomeEvent se1, SomeEvent se2) {
return (int) (se1.getStartTime().getValue() - se2.getStartTime().getValue());
}
});
Collections.sort(myEvents,new Comparator(){
公共int比较(SomeEvent se1,SomeEvent se2){
return(int)(se1.getStartTime().getValue()-se2.getStartTime().getValue());
}
});
所以,我明白了,您使用的不是存在
compareTo
方法的地方,而是没有compareTo
方法的地方。您的SomeEvent
类没有实现comparableinterface@PragnaniKinnera:好的,谢谢你的提示,但是如果我实现类似这样的接口:public类SomeEvent扩展SomeTask实现Comparable{…}我被告知必须将类声明为抽象(这不是选项)或在“Comparable”中实现抽象方法“compareTo(t)”。我该怎么做?@PragnaniKinnera“您的SomeEvent
类不实现可比较接口" ... 没必要。那肯定是我的问题,谢谢。但是,现在我必须解决一些语法错误,它还不是这样工作的。@Sorcha,我更新了答案,你能检查一下吗?当前的问题很奇怪-它在第三行告诉我“不必要的分号”(getValue()之后的一行),但告诉我分号是expecte(;expected)和“expected token”同时,。所以现在我通过转换DateTime to Date并使用原始函数来修复它。