Back-End/Java
[Java] toString()๊ณผ String.valueOf()์ ์ฐจ์ด์ ๋น๊ต
์ฑ๐ป
2022. 1. 18. 14:46
Object ํํ์ ๊ฐ์ String ํํ๋ก ๋ณํํ ๋ ๋ง์ด ์ฌ์ฉํ๋ ๊ฒ์ด toString() ํน์ String.valueOf() ๋ฉ์๋์ด๋ค.
๋ ๋ฉ์๋ ๋ชจ๋ ๊ฐ์ String์ผ๋ก ๋ณํํ๋ค๋ ์ ์์ ๋น์ทํ์ง๋ง, ๋ณ๊ฒฝํ๊ณ ์ํ๋ Object๊ฐ null์ธ ๊ฒฝ์ฐ์๋ ์ฐจ์ด๊ฐ ์๋ค.
๐กObject๊ฐ null์ผ๋?
toString()
- Null PointerException(NPE)์ ๋ฐ์
- ๋์ ๊ฐ์ด null์ด๋ฉด NPE๋ฅผ ๋ฐ์ → Object์ ๋ด๊ธด ๊ฐ์ด String์ด ์๋์ฌ๋ ์ถ๋ ฅ
String.valueOf()
- "null"์ด๋ผ๋ ๋ฌธ์์ด๋ก ์ฒ๋ฆฌ
- ํ๋ผ๋ฏธํฐ๊ฐ null์ด๋ฉด ๋ฌธ์์ด "null"์ ๋ง๋ค์ด์ ๋ฐํํ๋ค → ํญ์ String ํํ๋ก ์ถ๋ ฅ
์ด๋ฐ ์ฐจ์ด ๋๋ฌธ์ valueOf๋ "null".equals(string)ํํ๋ก ๋ค์ ํ๋ฒ ์ฒดํฌ๋ฅผ ํด์ผํ๋ค.
๋ํ, null๋ก ์ธํด ๋ฐ์๋ ์๋ฌ๋ ์๊ฐ์ด ์ง๋๊ณ ๋๋ฒ๊น ํ๊ธฐ ์ด๋ ต๋ค๋ ๋ฌธ์ ๊ฐ ์๋ค.
๊ทธ๋์ NPE(Null PointerException)๋ฅผ ๋ฐฉ์งํด์ผํ๋ ๊ฒฝ์ฐ์์๋ String.valueOf()๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข๋ค.
destItemMap.get("LOWER_VAL") ์ด null ์ผ ๊ฒฝ์ฐ
String lowerCoatingVal1 = String.valueOf(destItemMap.get("LOWER_VAL"));
String lowerCoatingVal2 = destItemMap.get("LOWER_VAL").toString();
lowerCoatingVal1 = "null"
lowerCoatingVal2 = NullPointerException ๋ฐ์
String.valueOf()์ null ์ฒดํฌ
String lowerCoatingVal1 = String.valueOf(destItemMap.get("LOWER_VAL"));
if("null".equals(lowerCoatingVal1)) {
// To do Somting....
}
// equalsํจ์๋ฅผ ์ฌ์ฉํ ๋ ์ผ์ชฝ์ ์๋ ๊ฒ์ ๊ธฐ์ค์ผ๋ก ๋น๊ตํ๊ธฐ ๋๋ฌธ์ ๋ณ์๋ณด๋ค๋ ๋ฌธ์์ด์ ์ผ์ชฝ์ ๋๋ ๊ฒ์ ์ถ์ฒํ๋ค.
// ์ฆ strTestVal์ด null์ธ ๊ฒฝ์ฐ ret = "1"์ธ if๋ฌธ์ NPE๋ฅผ ๋ฐ์์ํจ๋ค.
String strTestVal = null;
String ret = "";
/* Exception ๋ฐ์ */
if( !(strTestVal .equals("")) ) ret = "1";
/* ์ ์ */
if( !("".equals(strTestVal)) ) ret = "2";