item 54 JungHyunLyoo - JAVA-JIKIMI/EFFECTIVE-JAVA3 GitHub Wiki

null์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ฉ”์„œ๋“œ๊ฐ€ ๊ตด๋ฆฌ๋Š” ์Šค๋…ธ์šฐ๋ณผ

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);
}
โš ๏ธ **GitHub.com Fallback** โš ๏ธ