java - 通过比较器排序时出现 NullPointer 异常(通过 lambda 表达式)

标签 java lambda java-8 nullpointerexception comparator

我正在使用比较器 lambda 表达式对长格式的日期进行排序。 比较器comparingLong方法用于对长格式(毫秒)的日期对象列表进行排序。 它对日期进行了正确的排序,但问题是每当在日期对象中遇到空值时,它就会中断并抛出空指针异常。

您能否帮助我通过使用 lambda 表达式中的任何检查来避免这种情况,因为我不知道如何在 lamda 表达式中使用此检查,或者是否有其他方法可以避免此异常?

使用下面的 lambda 表达式。 我们如何在此实现空检查,以便所有空日期值都出现在列表的末尾并且代码不会中断?

myList.sort(Comparator.comparingLong(e -> e.getBirthDate().getTime()));

最佳答案

e ->null ==   e.getBirthDate()? LONG.MINIMUM : e.getBirthDate().getTime()

关于java - 通过比较器排序时出现 NullPointer 异常(通过 lambda 表达式),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57749476/

相关文章:

java - GroupingBy 使用 Java 8 流

java - lambda 表达式中变量名的约定是什么?

java - 在java 8中将hashmap拆分为分区

java - 在 Spring Security 中获取用户请求的 url

C# 在 lambda 表达式中切换

java - Java 中使用 commons HttpClient 的curl 等效项

c++ - 为什么以下代码片段会加速代码?

c++ - lambda 中引用捕获的对象的类型

java - 如何将日期格式从 yyyy-MM-dd 更改为 dd-MMM-yyyy

java - 餐巾外观和感觉错误