item 54 JungHyunLyoo - JAVA-JIKIMI/EFFECTIVE-JAVA3 GitHub Wiki
null์ ๋ฐํํ๋ ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ ํด๋ผ์ด์ธํธ๋ null์ return ๋ฐ๊ฒ ๋๋ฉด ์ค๋ฅ์ ๋ช์ผ๋ก ๋น ์ง๊ฒ ๋ ์ ์๋ค. ๋ฐ๋ผ์ null์ ์ ์ ํ๊ฒ ์ฒ๋ฆฌํ๋ ๋ฐฉ์ด ์ฝ๋๋ฅผ ์ถ๊ฐ๋ก ์์ฑํด์ผ ํ๋ค.
if(Objects.nonNull(value)){
//exec
}๋ฐฉ์ด ์ฝ๋๋ฅผ ๋ฃ์ด์ผ ํ๋ ๋ฉ์๋๊ฐ ๊ธธ๊ณ ๋ณต์กํ๋ค๋ฉด...? ๋์ฐ...
๊ทธ๋์ ์ฐจ๋ผ๋ฆฌ ๋น ์ปจํ ์ด๋(์ปฌ๋ ์ , ๋ฐฐ์ด, etc..)๋ฅผ ๋ฐํํ๋ ๊ฒ์ด ๋ซ๋ค.
์์ ๊ฐ์ ์ฃผ์ฅ์ ํ ์๋ ์๋ค. ํ์ง๋ง ์ด๋ ๋ ๊ฐ์ง ๋ฉด์์ ํ๋ฆฐ ์ฃผ์ฅ์ด๋ค.
1.์ฑ๋ฅ ์ฐจ์ด๋ ์ ๊ฒฝ ์ธ ์์ค์ด ๋ชป๋๋ค.(item 67์ฐธ์กฐ)
2.๋น ์ปฌ๋ ์ ๊ณผ ๋ฐฐ์ด์ ๊ตณ์ด ์๋ก ํ ๋นํ์ง ์๊ณ ๋ ๋ฐํํ ์ ์๋ค.
๋งค๋ฒ ๋๊ฐ์ ๋น '๋ถ๋ณ' ์ปฌ๋ ์ ์ ๋ฐํํ๋ ๊ฒ์ด๋ค. ๋ถ๋ณ ๊ฐ์ฒด๋ ์์ ๋กญ๊ฒ ๊ณต์ ํด๋ ์์ ํ๋ค!(item 17)
public List<Cheese> getCheeses() {
return cheesesInStock.isEmpty() ? Collections.emptyList() : new ArrayList<>(cheesesInStock);
}
public static final <T> List<T> emptyList() {
return (List<T>) EMPTY_LIST;
}
public static final List EMPTY_LIST = new EmptyList<>();๋ฐฐ์ด๋ ๋ง์ฐฌ๊ฐ์ง๋ค
private static final Cheese[] EMPTY_CHEESE_ARRAY = new Cheese[0];
public Cheese[] getCheeses() {
return cheesesInStock.toArray(EMPTY_CHEESE_ARRAY);
}