null vs 빈컬랙션, 빈배열

213kky·2024년 11월 3일

개요


컬렉션에 반환할 값이 없을 때 null을 리턴하기도 한다.
이런 경우 클라이언트 쪽에서 null을 처리해 주는 코드를 작성하지 않으면 에러가 발생하게 된다.

빈 컨테이너를 할당 비용 vs null 반환

빈 컨테이너를 할당하는 비용 때문에 null을 반환 하는게 나은가에 대해

  1. 성능 분석 결과 이 할당이 성능 저하의 주범이라고 확인되지 않는 한, 성능 차이는 신경 쓸 수준이 못 된다.
  2. 빈 컬렉션과 배열은 굳이 새로 할당하지 않고도 반환할 수 있다.

빈 컬렉션과 배열을 새로 할당하지 않고 반환하는 방법으로

  • 빈 컬렉션: Collections.emptyList() 메서드나 Collections.emptySet(), Collections.emtpyMap() 등을 사용하면 된다.

  • 빈 배열: 길이 0짜리 배열을 미리 선언해두고 매번 그 배열을 반환하면 된다.
    e.g. private static final Cheese[] EMPTY_CHEESE_ARRAY = new Cheese[0];

요약


null 리턴 시 API 사용이 더 어렵고, 에러 발생 가능성이 증가하며 성능 증가 이점도 없기 때문에 빈 배열이나 컬렉션을 리턴하도록 하자.

profile
since 2022

0개의 댓글