在使用lambda表达式排序之前检查null值

时间:2015-09-18 18:14:08

标签: lambda java-8

我想使用lambda表达式对parentId进行menuList排序,parentId可以为null。我尝试下面的代码,但我无法找到为parentId添加nullcheck的方法,因为我得到nullpointer异常。

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

你能帮我为parentId添加nullcheck吗? 注意:我不想跳过parentId为null的菜单。

1 个答案:

答案 0 :(得分:19)

使用比较器中的工厂方法:

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