Collections 比较Java8中的实例

Collections 比较Java8中的实例,collections,java-8,java-stream,comparator,icomparable,Collections,Java 8,Java Stream,Comparator,Icomparable,我有一个目标: public class MatchEvent implements Serializable { /** * */ private static final long serialVersionUID = 1L; @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private Instant dateR

我有一个目标:

public class MatchEvent implements Serializable {

    /**
     * 
     */
    private static final long serialVersionUID = 1L;


    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;


    private Instant dateReceived;

    public Instant getDateReceived() {
        return dateReceived;
    }


    public void setDateReceived(Instant dateReceived) {
        this.dateReceived = dateReceived;
    }

}
我想按收到日期订购

matchService
            .findAllByDay(today)
                .sorted(Comparator.comparing(MatchEvent::dateReceived))
但这似乎是不可能的,因为我遇到了一个编译错误:

Multiple markers at this line
    - The method comparing(Function<? super T,? extends U>) in the type Comparator is not applicable for the arguments 
     (MatchEvent::dateReceived)
    - The type MatchEvent does not define dateReceived(T) that is applicable here
此行有多个标记

-方法比较(函数在
类MatchEvent
中声明一个名为
getDateReceived()
的公共方法,如下所示:

public Instant getDateReceived(){
    return dateReceived;
}
Comparator.comparing(MatchEvent::getDateReceived)
然后您可以使用此方法作为方法参考,如下所示:

public Instant getDateReceived(){
    return dateReceived;
}
Comparator.comparing(MatchEvent::getDateReceived)

dateReceived是一个私有字段。您需要一个公共的
getDateReceived()
方法才能使用方法引用:
Comparator.Comparating(MatchEvent::getDateReceived)