- Opional을 반환하는 메서드에서는 절대 null을 반환하지 말자.
- 컬렉션, 스트림, 배열, 옵셔널 같은 컨테이너 타입은 옵셔널로 감싸면 안 된다.
- 옵셔널을 반환값이 아닌 필드나 다른 용도로 사용하지 말자.
메서드 반환 타입을 T 대신 Optional<T>로 선언해야 하는 기본 규칙 :
- 결과가 없을 수 있으며, 클라이언트가 이 상황을 특별하게 처리해야 한다면 Optional<T>를 반환한다.
핵심 정리 : 값을 반환하지 못할 가능성이 있고, 호출할 때마다 반환값이 없을 가능성을 염두에 둬야하는 메서드라면 옵셔널을 반환해야 할 상황일 수 있다. 하지만 옵셔널 반환에는 성능 저하가 뒤따르니, 성능에 민감한 메서드라면 null을 반환하거나 예외를 던지는 편이 나을 수 있다. 그리고 옵셔널을 반환값 이외의 용도로 쓰는 경우는 매우 드물다.
'이펙티브 자바' 카테고리의 다른 글
[이펙티브 자바] 아이템 57. 지역변수의 범위를 최소화하라 (0) | 2024.05.28 |
---|---|
[이펙티브 자바] 아이템 56. 공개된 API 요소에는 항상 문서화 주석을 작성하라 (0) | 2024.05.21 |
[이펙티브 자바] 아이템 54. null이 아닌, 빈 컬렉션이나 배열을 반환하라 (0) | 2024.05.21 |
[이펙티브 자바] 아이템 53. 가변인수는 신중히 사용하라 (0) | 2024.05.21 |
[이펙티브 자바] 아이템 52. 다중정의는 신중히 사용하라 (0) | 2024.05.21 |