Streams 중급

중첩 확인 없이 Optional 폴백을 체이닝합니다.

✕ Java 8
Optional<Config> cfg = primary();
if (!cfg.isPresent()) {
    cfg = secondary();
}
if (!cfg.isPresent()) {
    cfg = defaults();
}
✓ Java 9+
Optional<Config> cfg = primary()
    .or(this::secondary)
    .or(this::defaults);
이 코드에 문제가 있나요? 알려주세요.
🔗

체이닝 가능

읽기 쉬운 파이프라인으로 폴백을 쌓습니다.

지연 평가

폴백 공급자는 필요할 때만 실행됩니다.

📖

선언적

'기본을 시도, 또는 보조, 또는 기본값'으로 읽힙니다.

이전 방식
중첩 폴백
모던 방식
.or() 체인
JDK 버전
9
난이도
중급
Optional.or() 폴백
사용 가능

JDK 9 (2017년 9월) 이후 널리 사용 가능

Optional.or()는 값이 있으면 원래 Optional을 반환하고, 그렇지 않으면 공급자에서 다른 Optional을 반환합니다. 이를 통해 여러 폴백 소스를 읽기 쉬운 파이프라인으로 체이닝할 수 있습니다.

공유 𝕏 🦋 in