item 27 dodo4513 - JAVA-JIKIMI/EFFECTIVE-JAVA3 GitHub Wiki
- ๋๋ถ๋ถ์ ๋น๊ฒ์ฌ ๊ฒฝ๊ณ ๋ ์๋์ ๊ฐ ์ฝ๊ฒ ์ ๊ฑฐํ ์ ์๋ค.
// bad
Set<Lark> exaltation = new HashSet();
// good
Set<Lark> exaltation = new HashSet<>();
- ์ ๊ฑฐํ๊ธฐ ํจ์ฌ ์ด๋ ค์ด ๊ฒฝ๊ณ ๋ ์๋ค. ๊ณง๋ฐ๋ก ํด๊ฒฐ๋์ง ์๋ ๊ฒฝ๊ณ ๊ฐ ๋ํ๋๋ ํฌ๊ธฐํ์ง ๋ง์! ํ ์ ์๋ ํ ๋ชจ๋ ๋น๊ฒ์ฌ ๊ฒฝ๊ณ ๋ฅผ ์ ๊ฑฐํ๋ผ. ๋ชจ๋ ์ ๊ฑฐํ๋ค๋ฉด ๊ทธ ์ฝ๋๋ ํ์ ์์ ์ฑ์ด ๋ณด์ฅ๋๋ค. ์ฆ, ๋ฐํ์์ ClassCastException์ด ๋ฐ์ํ ์ผ์ด ์๊ณ , ์ฌ๋ฌ๋ถ์ด ์๋ํ ๋๋ก ์ ๋์ํ๋ฆฌ๋ผ ํ์ ํ ์ ์๋ค.
@Suppress
Warnings("unchecked")
- ๊ฒฝ๊ณ ๋ฅผ ์ ๊ฑฐํ ์๋ ์์ง๋ง ํ์ ์์ ํ๋ค๊ณ ํ์ ํ ์ ์๋ค๋ฉด ์ ์ ๋ํ ์ด์ ์ ๋ฌ์ ๊ฒฝ๊ณ ๋ฅผ ์จ๊ธฐ์.
- @SuppressWarnings ์ ๋ํ ์ด์ ์ ๊ฐ๋ณ ์ง์ญ๋ณ์ ์ ์ธ๋ถํฐ ํด๋์ค ์ ์ฒด๊น์ง ์ด๋ค ์ ์ธ์๋ ๋ฌ ์ ์๋ค. ํ์ง๋ง @SuppressWarnings ์ ๋ํ ์ด์ ์ ํญ์ ๊ฐ๋ฅํ ํ ์ข์ ๋ฒ์์ ์ ์ฉํ์. ์์นซ ์ฌ๊ฐํ ๊ฒฝ๊ณ ๋ฅผ ๋์น ์ ์์ผ๋ ์ ๋๋ก ํด๋์ค ์ ์ฒด์ ์ ์ฉํด์๋ ์ ๋๋ค.
- @SuppressWarnings("unchecked") ์ ๋ํ ์ด์ ์ ์ฌ์ฉํ ๋๋ฉด ๊ทธ ๊ฒฝ๊ณ ๋ฅผ ๋ฌด์ํด๋ ์์ ํ ์ด์ ๋ฅผ ํญ์ ์ฃผ์์ผ๋ก ๋จ๊ฒจ์ผ ํ๋ค.
๋น๊ฒ์ฌ ๊ฒฝ๊ณ ๋ ์ค์ํ๋ ๋ฌด์ํ์ง ๋ง์.
๋ชจ๋ ๋น๊ฒ์ฌ ๊ฒฝ๊ณ ๋ ๋ฐํ์์ ClassCastException์ ์ผ์ผํฌ ์ ์๋ ์ ์ฌ์ ๊ฐ๋ฅ์ฑ์ ๋ปํ๋ ์ต์ ์ ๋คํด ์ ๊ฑฐํ๋ผ.
๊ฒฝ๊ณ ๋ฅผ ์์จ ๋ฐฉ๋ฒ์ ์ฐพ์ง ๋ชปํ๊ฒ ๋ค๋ฉด, ๊ทธ ์ฝ๋๊ฐ ํ์ ์์ ํจ์ ์ฆ๋ช ํ๊ณ ๊ฐ๋ฅํ ํ ๋ฒ์๋ฅผ ์ขํ @SuppressWarnings("unchecked") ์ ๋ํ ์ด์ ์ผ๋ก ๊ฒฝ๊ณ ๋ฅผ ์จ๊ฒจ๋ผ.
๊ทธ๋ฐ ๋ค์ ๊ฒฝ๊ณ ๋ฅผ ์จ๊ธฐ๊ธฐ๋ก ํ ๊ทผ๊ฑฐ๋ฅผ ์ฃผ์์ผ๋ก ๋จ๊ฒจ๋ผ.