我已经使用lambda表达式对集合实现了排序以进行比较.我必须检查空值,所以我想出了比较器的这个解决方案
(a,b)->(
(a.getStartDate() == null)
? ( (b.getStartDate() == null) ? 0 : -1)
: ( (b.getStartDate() == null)?1:a.getStartDate().compareTo(b.getStartDate()) )
);
Run Code Online (Sandbox Code Playgroud)
我已经检查了一些问题,比如这个,但它们都是指lambda前代码.
java lambda表达式让我有机会避免两个'if'语句吗?我能以更干净的方式执行任务吗?
flo*_*flo 84
您可以使用Comparator中的默认实现:nullsFirst或nullsLast:
Comparator.comparing(YourObject::getStartDate,
Comparator.nullsFirst(Comparator.naturalOrder())
)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
19098 次 |
| 最近记录: |