鉴于代码:
Optional<String> myOptional = getMyOptional();
myOptional.ifPresentOrElse(
s -> Optional.ofNullable(someMap.get(s))
.ifPresentOrElse(g -> {
doSomeStuff();
},
() -> doErrHandling()),
() -> doErrHandling());
现在我正在考虑如何简化链并删除重复的代码行(
() -> doErrHandling()
)。 最佳答案
使用 map
:
Optional<String> myOptional = getMyOptional() ;
myOptional.map(s -> someMap.get(s))
.ifPresentOrElse(g -> doSomeStuff(), () -> doErrHandling());
如果原始
map
为空,Optional.empty()
将返回 Optional
,否则将 someMap.get(s)
的结果用 Optional
包装。关于java - 简化 ifPresentOrElse 链,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57056774/