java - Comparator.comparing(...) of a nested field -
suppose have domain model this:
class lecture { course course; ... // getters } class course { teacher teacher; int studentsize; ... // getters } class teacher { int age; ... // getters }
now can create teacher comparator this:
return comparator .comparing(teacher::getage);
but how compare lecture's on nested fields, this?
return comparator .comparing(lecture::getcourse::getteacher:getage) .thencomparing(lecture::getcourse::getstudentsize);
i can't add method lecture.getteacherage()
on model.
you can't nest method references. can use lambda expressions instead :
return comparator .comparing(l->l.getcourse().getteacher().getage(), comparator.reverseorder()) .thencomparing(l->l.getcourse().getstudentsize());
Comments
Post a Comment