Languege/Java & Spring / / 2022. 11. 18. 19:37

[JAVA] ๋ฆฌ์ŠคํŠธ null๋กœ ์ดˆ๊ธฐํ™”

๐ŸŽˆ Q & A

์˜ค์นด๋ฐฉ์„ ํ†ตํ•ด์„œ ์ž๋ฐ”, ์Šคํ”„๋ง์— ๋Œ€ํ•ด์„œ ๋‚˜๋„ ๊ธฐ์ดˆ๋ฅผ ์Œ“๊ณ , ๊ณต๋ถ€๋„ ํ•˜๊ณ , ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ๋„์›€์„ ์ฃผ๊ธฐ ์œ„ํ•ด ์ž๋ฐ” ์Šคํ”„๋ง์„ ์•Œ๋ ค์ฃผ๋Š” ์นดํ†ก๋ฐฉ์„ ๋ช‡๋‹ฌ์ „์— ์—ด์–ด๋’€๋Š”๋ฐ ์˜ค๋Š˜์€ ํ•œ๋ถ„์ด ๋‚˜๋„ ์ฒ˜์Œ์— ๋งŽ์ด ํ—ค๋งธ๋˜ ์˜ˆ์ œ๋ฅผ ๋ฌผ์–ด๋ณด์…”์„œ ๊ทธ๊ฒƒ์— ๋Œ€ํ•ด์„œ ์ ์œผ๋ ค๊ณ  ํ•œ๋‹ค.

 

ํ•ญ์ƒ ์งˆ๋ฌธํ•˜์‹ค๋•Œ๋งˆ๋‹ค ๋ชจ๋ฅด๋Š”๊ฑธ ๋ฌผ์–ด๋ณด๋ฉด ์ข‹๊ฒ ๋‹ค(?)๋ผ๋Š” ์ƒ๊ฐ์„ ํ•˜๊ฒŒ ๋˜๋Š”๋ฐ, ์˜ค๋Š˜ ์งˆ๋ฌธ์€ ์•„ ์ด๊ฑฐ ๋ธ”๋กœ๊ทธ ํฌ์ŠคํŒ… ํ•ด๋‘๋ฉด ์ข‹๊ฒ ๋‹ค ์‹ถ์–ด์„œ ๋จผ์ € ๋ง์”€์„ ๋“œ๋ฆฌ๊ณ  ํฌ์ŠคํŒ…์„ ํ•œ๋‹ค.

๐ŸŽˆ ๋ฌธ์ œ

๊ฐ„๋‹จํ•˜๊ฒŒ ์ด ๋ถ„์˜ ๋ง์€ ๋กœ์ง ์ž‘์„ฑ ์ค‘ ์—๋Ÿฌ๊ฐ€ ๋‚˜๋Š” ๋ถ€๋ถ„์ด ์žˆ๋Š”๋ฐ ๊ทธ๊ฒŒ ๋ญ”์ง€ ๋„์ €ํžˆ ๋ชจ๋ฅด๊ฒ ๋‹ค๋Š” ๋ง... ๊ทธ๋ฆฌ๊ณ  stream์„ ์‚ฌ์šฉํ•˜์…จ๋Š”๋ฐ ์ด๊ฒŒ ๋ฌธ๋ฒ•์ ์œผ๋กœ ์ƒ๊ด€์—†๋Š”์ง€.. ๋ฅผ ๋ฌผ์–ด๋ณด์…จ๊ณ  ๋‚˜๋Š” stream์˜ foreach ํ†ตํ•ด์„œ addํ•ด๋„ ๊ดœ์ฐฎ์ง€๋งŒ stream์˜ ์›๋ž˜ ์‚ฌ์šฉ ๋ชฉ์ ์„ ์ƒ๊ฐํ•˜์…”์•ผ ํ•œ๋‹ค. ๋ผ๋Š” ์›๋ก ์ ์ธ ๋ง์„ ๋“œ๋ ธ๋‹ค. ํ•˜์ง€๋งŒ ๋กœ์ง์„ ์ž์„ธํžˆ ๋ณด์ž ๋‹จ์ˆœํžˆ List์— add๋ฅผ ํ•˜๋Š” ๋‹จ์ˆœํ•œ ์ฝ”๋“œ์˜€๊ณ  stream์ด ๋ฌธ์ œ๊ฐ€ ์•„๋‹˜์„ ์•Œ๊ฒŒ๋๋‹ค.

List<Student> students = null;
List<Class> class = classService.findClass("abc");

class.stream().foreach(c -> students.add(c.getStudent()));
System.out.println(students);
=======================
[result]
null

์œ„์˜ ์ฝ”๋“œ์—์„œ null์ด ๋‚˜์˜ค๋Š” ์ด์œ ...

 

๐ŸŽˆ ์„ค๋ช…

List<Student>์™€ ๊ฐ™์ด ๋ฆฌ์ŠคํŠธ์—์„œ null๋กœ ์ดˆ๊ธฐํ™”๋ฅผ ํ•  ๊ฒฝ์šฐ ํ•ด๋‹น ๋ฆฌ์ŠคํŠธ๋ฅผ add๋ฅผ ํ•ด๋„ 

๋ฆฌ์ŠคํŠธ์— ๊ฐ’์ด ์ €์žฅ๋˜์ง€ ์•Š๋Š”๋‹ค.

๊ทธ ์ด์œ ๋Š” null๋กœ ์ดˆ๊ธฐํ™”๋ฅผ ์ง„ํ–‰ํ•˜๋ฉด ํ•ด๋‹น ๊ฐ’์ด ์–ด๋–ค ๊ฐ์ฒด๋ฅผ ๋‹ด๋Š” ๋ฆฌ์ŠคํŠธ์ธ์ง€ ๋”ฐ๋กœ ์ €์žฅํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. 

null ์€ ์•„๋ฌด๊ฒƒ๋„ ์ €์žฅํ•˜์ง€ ์•Š์€ ์ƒํƒœ๋กœ ์ดˆ๊ธฐํ™”

new Object(); ๋Š” ์ƒˆ๋กœ์šด ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค๊ณ  ์ฐธ์กฐํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด๋‹น ๊ณต๊ฐ„์˜ ์ฃผ์†Œ๋ฅผ ์ €์žฅํ•ด์„œ ๋ณ€์ˆ˜๋ฅผ ์ดˆ๊ธฐํ™”์˜ ์ฐจ์ด๋‹ค.

 

๐ŸŽˆ ๊ฒฐ๋ก 

๊ทธ๋ž˜์„œ ๋ฆฌ์ŠคํŠธ ํ˜•์œผ๋กœ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” new ArrayList<>() ๋กœ ์„ ์–ธํ•ด์ค˜์•ผ ํ•œ๋‹ค.

 

  • ๋„ค์ด๋ฒ„ ๋ธ”๋กœ๊ทธ ๊ณต์œ 
  • ๋„ค์ด๋ฒ„ ๋ฐด๋“œ ๊ณต์œ 
  • ํŽ˜์ด์Šค๋ถ ๊ณต์œ 
  • ์นด์นด์˜ค์Šคํ† ๋ฆฌ ๊ณต์œ