java-squid/effective-java

[아이템 54] null이 아닌, 빈 컬렉션이나 배열을 반환하라

Closed this issue · 3 comments

[아이템 54] null이 아닌, 빈 컬렉션이나 배열을 반환하라

null 말고 빈 배열, 혹은 빈 컬렉션을 보내는건 흥미롭네요.
사실 null 일때 처리를 해줘야지 이런 생각이 있었는데, 그런것보다 빈 컬렉션을 넘겨줬을때가 로직을 구현하기에도
조금 더 편할것 같네요.

null을 반환하는 API 는 사용하기 어렵고, 오류 처리 코드도 늘어난다. 그렇다고 성능이 좋은 것도 아니다.
이 말이 격하게 공감되네요. 프론트 개발할 때, ListView 를 보여주기 위해 백엔드 API 를 요청하면 empty array 인 경우와 null 인 경우가 있어서, 이 둘의 예외 처리 때문에 야근했던 적이 있어서요.
null 리턴을 금지할 뿐만 아니라 Optional<List<T>> 처럼 Optional 안에 Collection 이나 Array 타입도 generic 에 집어넣으면 안된다고 생각하는데 어떻게 생각하세요?

아이템 56(#56) 에서 Optional 을 할거면 비어있는 Collection 을 반환하라고 이미 나와 있군요.