Igo*_*gor 0 java java-8 java-stream
我有这样的旧式代码:
if (setContainer.getSet() == null) {
return null;
}
for (SetElement setElement : setContainer.getSet()){
if ("SomeString".equals(SetElement.getCode())) {
return setElement.getValue();
}
}
return null;
Run Code Online (Sandbox Code Playgroud)
我试过这个,但它不会检查Set是否为null:
setContainer.getSet()
.stream()
.filter(setValue -> "SomeValue".equals(setElement.getCode()))
.map(SetElement::getValue)
.findAny()
.orElse(null) ;
Run Code Online (Sandbox Code Playgroud)
据我所知,我应该使用,Stream.of()
但我不明白如何执行上面的代码,因为它总是返回Optional<Set<SetElement>>
你可以Optional.ofNullable用来实现这个目标:
return Optional.ofNullable(setContainer.getSet())
.flatMap(set -> set.stream()
.filter(e -> "SomeValue".equals(e.getCode()))
.map(SetElement::getValue)
.findAny())
.orElse(null);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
154 次 |
| 最近记录: |