私はいくつかのメソッドを持っていますが、それぞれがオプションの文字列を返しています。どのようにして結合するのですか?結果を見つけるまで、javaは各メソッドを呼び出します。それぞれがJava8を返すカスケードメソッドオプション<>
私はこのようなもので終わるしたいのですが、orElseFlatMap()
方法はありません:
import java.util.Optional;
public class OptionalCascade {
public static void main(String[] args) {
Optional<String> result =
// try to get a result with method A
methodA()
// if method A did not return anything, then try method B
.orElseFlatMap(methodB());
}
static Optional<String> methodA() {
return Optional.empty();
}
static Optional<String> methodB() {
return Optional.empty();
}
}
結果が出たらすぐに短絡しますか?その場合は、単にメソッドの呼び出しをコンストラクトに入れることはできません。ラムダでコールをラップする必要があります(例えば 'orElseGet(() - > methodB() 'のように) –
私はちょうど良い古いif-elseとnullsにとどまります:) – ZhongYu