728x90
반응형
null을 반환하는 코드는 클라이언트가
null 상황을 처리하는 코드를 추가하도록 한다.
컬렉션이나 배열 같은 컨테이너가 비었을 때
null을 반환하는 메서드를 사용할 때면 방어 코드를 추가해야 한다.
빈 컬렉션을 반환하는 코드
public List<Object> getList() {
return object.isEmpty() ? Collections.emptyList() : new ArrayList<>(object);
}
길이가 0일 수도 있는 배열을 반환하는 코드
private static final Object[] EMPTY_OBJECT_ARRAY = new Object[0];
public Object[] getObjects() {
return object.toArray(EMPTY_OBJECT_ARRAY);
}
마무리
null을 반환하는 API는 사용하기 어렵고 오류 처리 코드도 증가합니다.
성능이 좋은 것도 아니기 때문에 null을 반환하지 않는 것이 좋은 방법 입니다.
[출처]
이펙티브 자바 Effective Java 3/E - 조슈아 블로크 저/ 개앞맵시 역
728x90
반응형
'Book Record > Effective Java 3E' 카테고리의 다른 글
[Effective Java] equals는 일반 규약을 지켜 재정의하고 hashCode도 재정의하라 (1) | 2022.12.02 |
---|---|
[Effective Java] try-finally 보다는 try-with-resources를 사용하라 (1) | 2022.12.01 |
[Effective Java] 다 쓴 객체 참조를 해제하라 (1) | 2022.12.01 |
[Effective Java] 불필요한 객체 생성을 피하라 (0) | 2022.12.01 |
[Effective Java] 자원을 직접 명시하지 말고 의존 객체 주입을 사용하라 (0) | 2022.12.01 |