Java 8避免Lambda表达式NullPointException的方法

时间:2022-06-17 16:19:19

方法一

对于字符串的比较,使用非null的字符串的比较方法。

projects
  .stream()
  .filter(project -> "Completed".equalsIgnoreCase(project.getStatus()))
  .collect(Collectors.toList());

不建议使用project.getStatus().equalsIgnoreCase("Completed"),以避免status为null

方法二

使用filter把null的数据过滤掉

projects
  .stream()
  .filter(project -> project.getStatus() != null)
  .filter(project -> project.getStatus().equalsIgnoreCase("Completed"))
  .collect(Collectors.toList());

方法三

在使用前判断null值

personList
  .stream()
  .filter(project -> project.getStatus() != null && project.getStatus().equalsIgnoreCase("In Progress"))
  .collect(Collectors.toList());