Optional.or() 폴백
중첩 확인 없이 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
난이도
중급
JDK 지원
Optional.or() 폴백
사용 가능
JDK 9 (2017년 9월) 이후 널리 사용 가능
동작 원리
Optional.or()는 값이 있으면 원래 Optional을 반환하고, 그렇지 않으면 공급자에서 다른 Optional을 반환합니다. 이를 통해 여러 폴백 소스를 읽기 쉬운 파이프라인으로 체이닝할 수 있습니다.
관련 문서