-
์์ดํ 12. toString์ ํญ์ ์ฌ์ ์ํ๋ผDevBook/Effective Java 2023. 5. 7. 16:28
๐์ํฉ
- Object์ ๊ธฐ๋ณธ toString ๋ฉ์๋๊ฐ ์ฐ๋ฆฌ๊ฐ ์์ฑํ ํด๋์ค์ ์ ํฉํ ๋ฌธ์์ด์ ๋ฐํํ๋ ๊ฒฝ์ฐ๋ ๊ฑฐ์ ์์
- ๋จ์ํ ํด๋์ค_์ด๋ฆ@16์ง์๋ก_ํ์ํ_ํด์์ฝ๋ ๋ฅผ ๋ฐํํจ
- toString์ ์ผ๋ฐ ๊ท์ฝ
- '๊ฐ๊ฒฐํ๋ฉด์ ์ฌ๋์ด ์ฝ๊ธฐ ์ฌ์ด ํํ์ ์ ์ตํ ์ ๋ณด'๋ฅผ ๋ฐํํด์ผ ํจ
- ๋ชจ๋ ํ์ ํด๋์ค์์ ์ด ๋ฉ์๋๋ฅผ ์ฌ์ ์ํด์ผ ํจ
- ์ฅ์ - toString์ ์ ๊ตฌํํ ํด๋์ค๋ ๋๋ฒ๊น
ํ๊ธฐ ์ฌ์
- toString ๋ฉ์๋๋ ๊ฐ์ฒด๋ฅผ println, printf, assert ๊ตฌ๋ฌธ์ ๋๊ธธ ๋, ํน์ ๋๋ฒ๊ฑฐ๊ฐ ๊ฐ์ฒด๋ฅผ ์ถ๋ ฅํ ๋ ์๋์ผ๋ก ํธ์ถ๋จ
- ์ฆ, ์ง์ ํธ์ถํ์ง ์๋๋ผ๋ ๋ค๋ฅธ ์ด๋๊ฐ์์ ์ฐ์ผ ๊ฒ์
- toString์ ์ ๋๋ก ์ฌ์ ์ํ์ง ์๋๋ค๋ฉด ์ธ๋ชจ์๋ ๋ฉ์์ง๋ง ๋ก๊ทธ์ ๋จ์ ๊ฒ์
- toString ๋ฉ์๋๋ ๊ฐ์ฒด๋ฅผ println, printf, assert ๊ตฌ๋ฌธ์ ๋๊ธธ ๋, ํน์ ๋๋ฒ๊ฑฐ๊ฐ ๊ฐ์ฒด๋ฅผ ์ถ๋ ฅํ ๋ ์๋์ผ๋ก ํธ์ถ๋จ
๐๋ฐฉ๋ฒ
1. toString์ ๊ทธ ๊ฐ์ฒด๊ฐ ๊ฐ์ง ์ฃผ์ ์ ๋ณด ๋ชจ๋๋ฅผ ๋ฐํํ๋๊ฒ ์ข์
2. ํฌ๋งท์ ๋ช ์ํ๋ ์๋๋ ์๋๋ฅผ ๋ช ํํ ๋ฐํ์ผ ํจ
/** * ์ด ์ ํ๋ฒํธ์ ๋ฌธ์์ด ํํ์ ๋ฐํํ๋ค. * ์ด ๋ฌธ์์ด์ "XXX-YYY-ZZZZ" ํํ์ 12๊ธ์๋ก ๊ตฌ์ฑ๋๋ค. * XXX๋ ์ง์ญ ์ฝ๋, YYY๋ ํ๋ฆฌํฝ์ค, ZZZZ๋ ๊ฐ์ ์ ๋ฒํธ๋ค. * ๊ฐ๊ฐ์ ๋๋ฌธ์๋ 10์ง์ ์ซ์ ํ๋๋ฅผ ๋ํ๋ธ๋ค. * * ์ ํ๋ฒํธ์ ๊ฐ ๋ถ๋ถ์ ๊ฐ์ด ๋๋ฌด ์์์ ์๋ฆฟ์๋ฅผ ์ฑ์ธ ์ ์๋ค๋ฉด, * ์์์๋ถํฐ 0์ผ๋ก ์ฑ์๋๊ฐ๋ค. ์์ปจ๋ ๊ฐ์ ์ ๋ฒํธ๊ฐ 123์ด๋ผ๋ฉด * ์ ํ๋ฒํธ์ ๋ง์ง๋ง ๋ค ๋ฌธ์๋ "0123"์ด ๋๋ค. */ @Override public String toString() { return String.format("%03d-%03d-%04d", areaCode, prefix, lineNum); } /** * ์ด ์ฝ๋ฌผ์ ๊ดํ ๋๋ต์ ์ธ ์ค๋ช ์ ๋ฐํํ๋ค. * "[์ฝ๋ฌผ #9: ์ ํ=์ฌ๋, ๋์=ํ ๋ ๋น์ , ๊ฒ๋ชจ์ต=๋จน๋ฌผ]" */ @Override public String toString() { ... }
3. toString์ด ๋ฐํํ ๊ฐ์ ํฌํจ๋ ์ ๋ณด๋ฅผ ์ป์ด์ฌ ์ ์๋ API๋ฅผ ์ ๊ณตํ์ - getter
๐ํต์ฌ ์ ๋ฆฌ
- ๋ชจ๋ ๊ตฌ์ฒด ํด๋์ค์์ Object์ toString์ ์ฌ์ ์ํ์
- ์์ ํด๋์ค์์ ์ด๋ฏธ ์๋ง๊ฒ ์ฌ์ ์ํ ๊ฒฝ์ฐ๋ ์์ธ์
- toString์ ์ฌ์ ์ํ ํด๋์ค๋ ์์คํ ์ ๋๋ฒ๊น ํ๊ธฐ ์ฝ๊ฒ ํด์ค
- toString์ ํด๋น ๊ฐ์ฒด์ ๊ดํ ๋ช ํํ๊ณ ์ ์ฉํ ์ ๋ณด๋ฅผ ์ฝ๊ธฐ ์ข์ ํํ๋ก ๋ฐํํด์ผ ํจ
'DevBook > Effective Java' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์์ดํ 14. Comparable์ ๊ตฌํํ ์ง ๊ณ ๋ คํ๋ผ (0) 2023.05.07 ์์ดํ 13. clone ์ฌ์ ์๋ ์ฃผ์ํด์ ์งํํ๋ผ (0) 2023.05.07 ์์ดํ 11. equals๋ฅผ ์ฌ์ ์ํ๋ ค๊ฑฐ๋ hashCode๋ ์ฌ์ ์ํ๋ผ (0) 2023.05.07 ์์ดํ 10. equals๋ ์ผ๋ฐ ๊ท์ฝ์ ์ง์ผ ์ฌ์ ์ํ๋ผ (0) 2023.05.06 3์ฅ - ๋ชจ๋ ๊ฐ์ฒด์ ๊ณตํต ๋ฉ์๋ (0) 2023.05.06 - Object์ ๊ธฐ๋ณธ toString ๋ฉ์๋๊ฐ ์ฐ๋ฆฌ๊ฐ ์์ฑํ ํด๋์ค์ ์ ํฉํ ๋ฌธ์์ด์ ๋ฐํํ๋ ๊ฒฝ์ฐ๋ ๊ฑฐ์ ์์