8장_아이템55 - ririkat/effective-java GitHub Wiki

아이템55. 옵셔널 반환은 신중하라


메서드가 특정 조건에서 값을 반환할 수 없을 때 취할 수 있는 선택지

  • 자바 8 이전
    • 예외 던짐
    • null 반환
  • 자바 8 이후 추가
    • Optional 반환

📝 옵셔널 반환을 선택해야 하는 기준

  • 값을 반환하지 못할 가능성이 있고, 호출할 때마다 반환값이 없을 가능성을 염두에 둬야 하는 메서드에 사용

💡 Optional 반환 시 장점

  • 예외 반환 메서드보다 유연하고 사용하기 쉬움
  • null 반환은 잠재적 오류 가능성을 내재하기 때문에 오류 가능성이 작다.

🔔 주의점

  • 옵셔널을 반환하는 메서드에서는 절대 null을 반환하지 말자.
  • 성능에 민감한 메서드라면 옵셔널보다는 null을 반환하라. (옵셔널은 성능 저하가 따른다.)
  • (컬렉션, 스트림, 배열, 옵셔널 등) 컨테이너 타입은 옵셔널로 감싸면 안 된다.
  • 박싱된 기본 카입을 담은 옵셔널을 반환하는 일은 없어야 한다.
  • 옵셔널이 반환값 이외의 용도로 쓰이는 경우는 매우 드물고, 컬렉션의 키, 값, 원소나 배열의 원소로 사용하는 것은 적절하지 않다.
    • 예외 : 필수가 아닌 필드값에 사용할 수 있음.

⚠️ **GitHub.com Fallback** ⚠️