2015-09-18 12 views
7

Chcę posortować listę menu według rodzicaId, używając wyrażenia lambda, parentId może mieć wartość null. próbowałem poniżej kodu, ale nie jestem w stanie znaleźć sposób, aby dodać nullcheck dla parentId, z powodu których otrzymuję wyjątek nullpointer.sprawdź wartość pustą przed sortowaniem używając wyrażenia lambda

List<MenuList> menuList = session.createQuery("from MenuList").list(); 
menuList.sort((p1, p2) -> 
p1.getParentId().compareTo(p2.getParentId())); 

Czy możesz mi pomóc w dodaniu wartości nullCheck dla parentId. Uwaga: Nie chcę pomijać menu z parentId null.

Odpowiedz

18

pomocą metody fabryki w komparatora:

menuList.sort(Comparator.comparing(MenuList::getParentId, Comparator.nullsLast(Comparator.naturalOrder())));