如果Map rdsDesksByName.get(e.getKey())
没有键的任何值。如何在流中处理此问题?
现在我回来了 createDeskWithScope(rdsDesksByName.get(e.getKey()),ds.outOfScope())
,但是如果 rdsDesksByName
没有键的任何值,否则应照常处理
List<Desk> desks = deskScopesByName.entrySet()
.stream()
.flatMap(e -> {
return deskScopesByName.get(e.getKey())
.stream()
.map(ds -> {
return createDeskWithScope(rdsDesksByName.get(e.getKey()), ds.outOfScope());
});
})
.collect(Collectors.toList());
1条答案
按热度按时间lzfw57am1#
在flatmapping操作中,通过键查找对象并使用
if-else
条件:如果对象是
null
(该键没有值),记录消息并返回Stream.empty()
.否则,请使用继续处理
createDeskWithScope
方法。下面是代码的外观(未经测试,但应该会给您一个想法):
我建议将flatmapping操作 Package 在一个方法中。