简化 ifPresentOrElse 链
Simplify ifPresentOrElse chain
给定代码:
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());
如果原始 Optional
为空,map
将 return 一个 Optional.empty()
,并将 someMap.get(s)
的结果用 [=14= 包裹起来] 否则。
给定代码:
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());
如果原始 Optional
为空,map
将 return 一个 Optional.empty()
,并将 someMap.get(s)
的结果用 [=14= 包裹起来] 否则。