【发布时间】:2020-11-19 09:27:25
【问题描述】:
如果映射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());
【问题讨论】:
-
为
flatMap块定义一个方法,也可能为其中的map块定义一个方法。这样您就可以更好地控制并轻松了解在哪里记录。给你一个简单的问题,给定一段没有流的代码,你会怎么做? -
我只是在stream之后添加一个.peek(a -> System.out.println("")),你可以做一个简短的比较,甚至使用.filter(),就是这样它。
-
因为它误导了
deskScopesByName.get(e.getKey())可能是e.getValue()
标签: java java-stream