Today I Learned/2022

String ๋ณ€์ˆ˜๊ฐ€ Null์ผ ๋•Œ "" ์–ป๋Š” ๋ฐฉ๋ฒ•

YURI๐Ÿ•๐Ÿ“๐Ÿถ 2022. 3. 10. 15:25
๋ฐ˜์‘ํ˜•

String ๋ณ€์ˆ˜๊ฐ€ Null์ผ ๋•Œ "" ์–ป๋Š” ๋ฐฉ๋ฒ•

  • ์ฐจ์„ธ๋Œ€ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉฐ, ๋ฉ”์„œ๋“œ๋‚ด์˜ String ๋ณ€์ˆ˜๊ฐ€ ๋ฌด์กฐ๊ฑด Null์ด ์•„๋‹Œ ๊ฐ’์ด ๋“ค์–ด์˜จ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ์ง€๋งŒ ์•„๋‹Œ ๊ฒฝ์šฐ๊ฐ€ ๋‹ค์ˆ˜ ๋ฐœ์ƒํ•ด์„œ ์•Œ์•„๋ณด๊ฒŒ ๋˜์—ˆ๋‹ค. ๋“ค์–ด์˜ฌ ์ˆ˜ ์žˆ๋Š” input ๋ฒ”์œ„๋ฅผ ์•Œ๊ณ  ๊ฐœ๋ฐœํ•˜๋ฉด ์ข‹๊ฒ ์ง€๋งŒ ๊ทธ๋Ÿฌ์ง€ ๋ชปํ•˜๋Š” ์ƒํ™ฉ์ด๋ผ ์ž„์‹œ ๋ฐฉ์•ˆ์œผ๋กœ NullPointException์„ ๋ง‰๊ธฐ ์œ„ํ•ด ๋กœ์ง๋‚ด์— ์ถ”๊ฐ€ํ–ˆ๋‹ค.
// standard in Java 7
String nullString = null;
String emptyString = Objects.toString(nullString, "");

// In Java 9+. returns empty string if obj is null
Objects.requireNonNullElse (nullString, "");

์ฐธ๊ณ  : Objects.toString()์˜ ๊ฒฝ์šฐ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋Œ“๊ธ€์ด ๋‹ฌ๋ ธ๋‹ค. Java 9 ์ด์ƒ์˜ ํ™˜๊ฒฝ์—์„œ๋Š” Objects.requireNonNullElse์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒŒ ์ข‹์„ ๊ฒƒ ๊ฐ™๋‹ค.

The risk is that u r losing the type of your string. It is currently a String but if it will change to a different type in the future he compiler won't protect u – ozma Jul 29, 2019 at 6:32

๐Ÿ‘ Reference

 

๋ฐ˜์‘ํ˜•