您不能嵌套方法引用。您可以改用lambda表达式:
return Comparator .comparing(l->l.getCourse().getTeacher().getAge(), Comparator.reverseOrder()) .thenComparing(l->l.getCourse().getStudentSize());
无需反向顺序,它就不再那么冗长了:
return Comparator .comparing(l->l.getCourse().getTeacher().getAge()) .thenComparing(l->l.getCourse().getStudentSize());
注意:在某些情况下,您需要明确声明泛型类型。对于
例如,下面的代码不会没有工作,
<FlightAssignment, LocalDateTime>之前
comparing(...)在Java中8。
flightAssignmentList.sort(Comparator .<FlightAssignment, LocalDateTime>comparing(a -> a.getFlight().getDepartureUTCDateTime()) .thenComparing(a -> a.getFlight().getArrivalUTCDateTime()) .thenComparing(FlightAssignment::getId));
较新的Java版本具有更好的自动类型检测功能,可能不需要这样做。



