Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java datetime上对象的排序列表(无法将方法';compareTo';)解析为_Java_Sorting_Datetime_Android Studio - Fatal编程技术网

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并使用原始函数来修复它。