Optional 체이닝
중첩된 null 확인을 Optional 파이프라인으로 대체합니다.
코드 비교
✕ Java 8
String city = null;
if (user != null) {
Address addr = user.getAddress();
if (addr != null) {
city = addr.getCity();
}
}
if (city == null) city = "Unknown";
✓ Java 9+
String city = Optional.ofNullable(user)
.map(User::address)
.map(Address::city)
.orElse("Unknown");
이 코드에 문제가 있나요? 알려주세요.
모던 방식이 더 나은 이유
체이닝 가능
각 .map() 단계가 null을 투명하게 처리합니다.
선형 흐름
중첩된 if 블록 대신 왼쪽에서 오른쪽으로 읽습니다.
NPE 방지
각 단계에서 null이 처리됩니다 — 충돌 가능성 없음.
이전 방식
중첩 null 확인
모던 방식
Optional 파이프라인
JDK 버전
9
난이도
초급
JDK 지원
Optional 체이닝
사용 가능
JDK 8 이상에서 사용 가능 (9 이상에서 개선)
동작 원리
Optional.map()은 nullable 값을 체이닝하면서 첫 번째 null에서 단락 평가합니다. orElse()는 기본값을 제공합니다. 이를 통해 피라미드형 null 확인을 제거합니다.
관련 문서