ich mehrere Methoden haben, dass jeder eine optionale Zeichenkette zurückkehren. Wie kombiniere ich dann, damit Java jede Methode aufruft, bis sie ein Ergebnis findet?Cascade Methoden, jede Rückkehr eine Java8 Optional <>
Ich möchte mit so etwas Ende, aber es ist nicht orElseFlatMap()
Methode:
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();
}
}
Möchten Sie kurzschließen, sobald Sie ein Ergebnis erhalten? In diesem Fall können Sie den Methodenaufruf nicht einfach in das Konstrukt einfügen. Du musst Anrufe in lambdas umhüllen (zB mit 'orElseGet (() -> methodB()' –
Ich bleib einfach bei guten alten if-else und nulls :) – ZhongYu