8장_아이템55 - ririkat/effective-java GitHub Wiki
메서드가 특정 조건에서 값을 반환할 수 없을 때 취할 수 있는 선택지
- 자바 8 이전
- 예외 던짐
- null 반환
- 자바 8 이후 추가
- Optional 반환
- 값을 반환하지 못할 가능성이 있고, 호출할 때마다 반환값이 없을 가능성을 염두에 둬야 하는 메서드에 사용
- 예외 반환 메서드보다 유연하고 사용하기 쉬움
- null 반환은 잠재적 오류 가능성을 내재하기 때문에 오류 가능성이 작다.
- 옵셔널을 반환하는 메서드에서는 절대 null을 반환하지 말자.
- 성능에 민감한 메서드라면 옵셔널보다는 null을 반환하라. (옵셔널은 성능 저하가 따른다.)
- (컬렉션, 스트림, 배열, 옵셔널 등) 컨테이너 타입은 옵셔널로 감싸면 안 된다.
- 박싱된 기본 카입을 담은 옵셔널을 반환하는 일은 없어야 한다.
- 옵셔널이 반환값 이외의 용도로 쓰이는 경우는 매우 드물고, 컬렉션의 키, 값, 원소나 배열의 원소로 사용하는 것은 적절하지 않다.
- 예외 : 필수가 아닌 필드값에 사용할 수 있음.