将ifPresernt添加到流

时间:2018-10-10 12:41:13

标签: java

如果传真不存在,我应该在哪里将ifPresert()应用于流以不抛出NullPointerExpetion?

deptUserMap.get("Collection").stream()
.filter(u->u.getTitle().equals("Tester"))
.findFirst()
.orElse(new User())
.getFax());

1 个答案:

答案 0 :(得分:0)

您将返回null或用户传真:

Optional<String> userFax = deptUserMap.getOrDefault("Collection", Collections.emptyLis())
 .stream()
.filter(u->Objects.equals("Tester", u.getTitle())) // in case title is null
.findFirst()
.map(User::getFax);

现在,如果需要userFax.orElse(null)

,则可以打开“可选”选项

如果您在第一行中面对NPE,则意味着deptUserMap映射中没有“ Collection”键。从JDK8开始,您可以使用getOrDefault解决此问题。