[Effective Java 3/e] 아이템 54 - null이 아닌, 빈 컬렉션이나 배열을 반환하라
아이템 54 - null이 아닌, 빈 컬렉션이나 배열을 반환하라
컬렉션이 비었으면 null을 반환한다 - 따라하지 말 것
private final List<Cheese> cheesesInStock = ...;
public List<Cheese> getCheeses() {
return cheesesInStock.isEmpty() ? null : new ArrayList<>(cheesesInStock);
}
// 호출 하는 곳에서 null 체크를 매번 해줘야 한다!!
List<Cheese> cheeses = shop.getCheeses();
if (cheeses != null && cheeses.contains(Cheese.STILTON))
System.out.println("Test");
빈 컬렉션을 반환하는 예 - 매번 새로 할당하지 않도록 함
public List<Cheese> getCheeses() {
return cheesesInStock.isEmpty() ? Collections.emptyList() : new ArrayList<>(cheesesInStock);
}
빈 배열을 반환하는 예 - 매번 새로 할당하지 않도록 함
private static final Cheese[] EMPTY_CHEESE_ARRAY = new Cheese[0];
public Cheese[] getCheeses() {
return cheesesInStock.toArray(EMPTY_CHEESE_ARRAY);
}