具有空值检查的Java 8 lambda比较器

时间:2016-10-06 08:47:53

标签: lambda java-8

我使用lambda表达式对集合实现了排序以进行比较。我必须检查空值,所以我想出了比较器的这个解决方案

(a,b)->(
    (a.getStartDate() == null) 
        ? ( (b.getStartDate() == null) ? 0 : -1)
        : ( (b.getStartDate() == null)?1:a.getStartDate().compareTo(b.getStartDate()) )
);

我已经检查了一些问题,例如this,但它们都引用了lambda前代码。

java lambda表达式让我有机会避免两个' if'声明?我可以用更干净的方式完成任务吗?

1 个答案:

答案 0 :(得分:58)

您可以使用maonullsFirst中的默认实施:

nullsLast