繁体   English   中英

在日期时间对对象列表进行排序(无法解析方法“ compareTo”)

[英]Sorting list of objects on datetime (cannot resolve method 'compareTo')

我正在尝试根据对象的DateTime对对象数组进行排序。 我使用以下示例创建了我的解决方案:

按日期对ArrayList中的对象进行排序?

我使用的方法如下所示:

        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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM