【问题标题】:Java 8 lambda comparator with null value check [duplicate]具有空值检查的 Java 8 lambda 比较器 [重复]
【发布时间】:2016-10-06 08:47:53
【问题描述】:

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

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

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

java lambda 表达式是否让我有机会避免使用两个“if”语句?我可以以更简洁的方式执行任务吗?

【问题讨论】:

标签: lambda java-8


【解决方案1】:

Comparator 中有默认实现,您可以使用:nullsFirstnullsLast

Comparator.comparing(YourObject::getStartDate, 
  Comparator.nullsFirst(Comparator.naturalOrder())
)

【讨论】:

  • 谢谢你:)
猜你喜欢
  • 2017-10-28
  • 1970-01-01
  • 2023-03-09
  • 2011-01-24
  • 1970-01-01
  • 1970-01-01
  • 2019-03-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多