Optional로 값 없음 표현하기 예제가 실행되는 순서
조회가 Optional 상태 반환에서 시작해 없음 정책을 orElse·throw로 선택까지 값과 책임이 이동한다.
-
1
조회가 Optional 상태 반환
단일 값을 찾는 메서드가 null 대신 Optional를 반환하면 호출자가 map, orElse, orElseThrow로 정책을 고릅니다.
-
2
값이 있을 때만 map 변환
Optional.of(null)은 즉시 실패하고 ofNullable(null)은 empty를 만듭니다.
-
3
없음 정책을 orElse·throw로 선택
Optional을 연쇄 조건문처럼 중첩하지 않고 값 변환 흐름을 연결합니다.
실행 순서 존재하는 조회에는 map이 실행되고 없는 조회에서만 orElseGet의 Supplier가 호출됩니다.