Tôi có một số phương thức, mỗi phương thức đều trả về một chuỗi tùy chọn. Làm thế nào để tôi kết hợp sau đó, để java gọi mỗi phương pháp, cho đến khi nó tìm thấy một kết quả?Phương thức Cascade, mỗi phương thức trả về một Java8 Tùy chọn <>
Tôi muốn kết thúc với một cái gì đó như thế này, nhưng không có orElseFlatMap()
phương pháp:
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();
}
}
Bạn có muốn đoản mạch ngay khi bạn nhận được kết quả không? Trong trường hợp đó, bạn không thể chỉ cần gọi phương thức trong cấu trúc. Bạn sẽ phải bọc các cuộc gọi trong lambdas (chẳng hạn như với 'orElseGet (() -> methodB()' –
Tôi sẽ ở lại với tốt cũ nếu-else và nulls :) – ZhongYu