Optional이 표현하는 두 상태

null 참조 하나에 여러 의미를 숨기지 않고 결과 존재 여부를 type에 드러낸다.

Optional<T>

Present

정상적인 T 값 하나를 보관한다

value

Empty

결과가 없음을 명시한다

absence

Caller

빈 상태 정책을 선택한다

contract

API

반환 type으로 부재 가능성을 알린다

signature

핵심: Optional은 모든 null을 없애는 container가 아니라 반환값의 부재를 모델링하는 도구다.