如果传真不存在,我应该在哪里将ifPresert()应用于流以不抛出NullPointerExpetion?
deptUserMap.get("Collection").stream()
.filter(u->u.getTitle().equals("Tester"))
.findFirst()
.orElse(new User())
.getFax());
答案 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解决此问题。