Java

[Effective Java] ์•„์ดํ…œ 54. null์ด ์•„๋‹Œ, ๋นˆ ์ปฌ๋ ‰์…˜์ด๋‚˜ ๋ฐฐ์—ด์„ ๋ฐ˜ํ™˜ํ•˜๋ผ.

quedevel 2023. 3. 24. 19:48
728x90
๋ฐ˜์‘ํ˜•

๐ŸŽฏ ์•„์ดํ…œ 54. null์ด ์•„๋‹Œ, ๋นˆ ์ปฌ๋ ‰์…˜์ด๋‚˜ ๋ฐฐ์—ด์„ ๋ฐ˜ํ™˜ํ•˜๋ผ.

null์„ ๋ฐ˜ํ™˜ํ•˜๋Š” API๋Š” ์‚ฌ์šฉํ•˜๊ธฐ ์–ด๋ ต๊ณ  ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ ์ฝ”๋“œ๋„ ๋Š˜์–ด๋‚œ๋‹ค. ๊ทธ๋ ‡๋‹ค๊ณ  ์„ฑ๋Šฅ์ด ์ข‹์€ ๊ฒƒ๋„ ์•„๋‹ˆ๋‹ค.

์ปฌ๋ ‰์…˜์ด๋‚˜ ๋ฐฐ์—ด ๊ฐ™์€ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ๋น„์—ˆ์„ ๋•Œ null์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ๋ฉด ํ•ญ์‹œ ๋ฐฉ์–ด ์ฝ”๋“œ๋ฅผ ๋„ฃ์–ด์ค˜์•ผ ํ•œ๋‹ค. ํด๋ผ์ด์–ธํŠธ์—์„œ ๋ฐฉ์–ด ์ฝ”๋“œ๋ฅผ ๋นผ๋จน์œผ๋ฉด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค. ์‹ค์ œ๋กœ ๊ฐ์ฒด๊ฐ€ 0๊ฐœ์ผ ๊ฐ€๋Šฅ์„ฑ์ด ๊ฑฐ์˜ ์—†๋Š” ์ƒํ™ฉ์—์„œ๋Š” ์ˆ˜๋…„ ๋’ค์—์•ผ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๊ธฐ๋„ ํ•œ๋‹ค.

  • ๋นˆ ์ปฌ๋ ‰์…˜์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ์˜ฌ๋ฐ”๋ฅธ ์˜ˆ
public List<Cheese> getCheeses(){
    return new ArrayList<>(cheesesInStock);    
}

๋Œ€๋ถ€๋ถ„์˜ ์ƒํ™ฉ์—์„œ๋Š” ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๋œ๋‹ค. ๊ฐ€๋Šฅ์„ฑ์€ ์ž‘์ง€๋งŒ, ์‚ฌ์šฉ ํŒจํ„ด์— ๋”ฐ๋ผ ๋นˆ ์ปฌ๋ ‰์…˜ ํ• ๋‹น์ด ์„ฑ๋Šฅ์„ ๋ˆˆ์— ๋„๊ฒŒ ๋–จ์–ด ๋œจ๋ฆด ์ˆ˜๋„ ์žˆ๋‹ค. ๋‹คํ–‰ํžˆ ํ•ด๋ฒ•์€ ๊ฐ„๋‹จํ•˜๋‹ค. ๋งค๋ฒˆ ๋˜‘๊ฐ™์€ ๋นˆ '๋ถˆ๋ณ€'์ปฌ๋ ‰์…˜์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

ex) Collections.emptyList, Collections.emptySet, Collections.emptyMap


์ฐธ๊ณ  ์ž๋ฃŒ

Joshua Bloch, ใ€ŽEffective Java 3/Eใ€, ๊ฐœ์•ž๋งต์‹œ ์˜ฎ๊น€, ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ธ์‚ฌ์ดํŠธ(2018)
http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&mallGb=KOR&barcode=9788966262281&orderClick=LEa&Kc=

728x90
๋ฐ˜์‘ํ˜•