![](/img/trans.png)
[英]Java 8 : getting default values for a collection with nested Optionals
[英]Converting traditional nested if else condition to java 8 optionals efficiently
Object ab = someMethod1()
if(ab != null) {
someMethod2(ab);
} else {
someMethod3()
}
轉換為 java 選件
Optional.ofNullable(someMethod1()).map( e -> someMethod2(ab))
.orElseGet(() -> someMethod3() );
但是你能幫我轉換一下嗎//如果有其他條件存在多個嵌套,很難轉換為 java 8 個選項
public void a() {
Object ab = someMethod1();
if(ab != null) {
Object cd = someMethod2();
if(cd != null) {
Object ef = someMethod3();
if( ef!= null) {
someMethod4();
} else {
elseMethod3()
}
} else {
elseMethod2()
}
} else {
elseMethod1();
}
}
public class a {
static String method1(String agr) {
return "method1";
}
static String method2(String agr) {
return "method2";
}
static String method3(String agr) {
return "method3";
}
public static Optional<String> cal(Optional<String> optionalS, Function<String, String> function, String agr) {
if (optionalS.isPresent())
return Optional.of(function.apply(agr));
return Optional.empty();
}
public static void main(String agr[]) {
cal(Optional.empty(), a::method1, "agr func1").orElseGet(() ->
cal(Optional.empty(), a::method2, "agr func2").orElseGet(() ->
cal(Optional.ofNullable("c"), a::method3, "agr func3").orElse("final result")
)
);
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.