return status != null ? status : READY;
Optional<Member> member = ...;
return member.orElseThrow(() -> new NoSuchElementException());
Optional을 필드로 사용 금지
Optional은 필드에 사용할 목적으로 만들어지지 않았으며, Serializable을 구현하지 않았다.
Optional을 컬렉션의 원소로 사용 금지
컬렉션에는 많은 원소가 들어갈 수 있다. 따라서 비싼 Optional을 원소로 사용하지 말고 원소를 꺼낼 때나 사용할 때 null 체크하는 것이 좋다. 특히 Map은 getOrDefault(), putIfAbsent(), computeIfAbsent(), computeIfPresent() 처럼 null 체크가 포함된 메서드를 제공하므로, Map의 원소로 Optional을 사용하지 말고 Map이 제공하는 메서드를 활용하는 것이 좋다.
of(), ofNullable() 혼동 주의
of(X)은 X가 null이 아님이 확실할 때만 사용해야 하며, X가 null이면 NullPointerException 이 발생한다.
ofNullable(X)은 X가 null일 수도 있을 때만 사용해야 하며, X가 null이 아님이 확실하면 of(X)를 사용해야 한다.
잘 봤습니다. 좋은 글 감사합니다.