<aside> 📚 null 대신 빈 배열이나 빈 컬렉션을 반환하라. null 을 반환한다고 해서 성능이 좋아지는 것도 아니고, 오히려 작성해야 하는 오류 처리 코드만 늘어나기 때문이다.

</aside>

1. 메서드에서 null 이 반환되면 생기는 일

private final List<Cheese> cheesesInStock = ... ;
public List<Cheese> getCheeses() {
    return cheesesInStock.isEmpty() ? null : new ArrayList<>(cheesesInStock);
}
List<Cheese> cheeses = shop.getCheeses();
if (cheeses != null && cheeses.contains(Cheese.STILTON))
    System.out.println("good");

2. null 대신 빈 배열/컬렉션을 반환하는 경우

public List<Cheese> getCheeses() {
    return new ArrayList<>(cheesesInStock);
}

3. null 대신 빈 배열/컬렉션을 반환하는 것이 더 좋은 이유

1) null 대신 빈 배열/컬렉션을 반환하는 경우의 성능 차이는 아주 미미하다.

2) 빈 배열/컬렉션은 굳이 새로 할당하지 않고도 반환할 수 있다.