сравнивая Instants в Java8 - PullRequest
0 голосов
/ 20 октября 2018

У меня есть этот объект:

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

1 Ответ

0 голосов
/ 20 октября 2018

Объявите открытый метод с именем getDateReceived() внутри class MatchEvent следующим образом:

public Instant getDateReceived(){
    return dateReceived;
}

Затем вы можете использовать этот метод в качестве ссылки на метод следующим образом:

Comparator.comparing(MatchEvent::getDateReceived)
...