item 27 Jung inchul - JAVA-JIKIMI/EFFECTIVE-JAVA3 GitHub Wiki
Effective Java 3e ์์ดํ 27๋ฅผ ์์ฝํ ๋ด์ฉ ์ ๋๋ค.
์ ๋ค๋ฆญ
์ ์ต์ํด์ง์๋ก ๋ง์ฃผ์น๋ ๊ฒฝ๊ณ ์๋ ์ค๊ฒ ์ง๋ง ์๋ก ์์ฑํ ์ฝ๋๊ฐ ํ๋ฒ์ ๊นจ๋ํ๊ฒ ์ปดํ์ผ
๋๋ฆฌ๋ผ ๊ธฐ๋ํ์ง๋ ๋ง์. ์ฝ๋๋ฅผ ๋ค์์ฒ๋ผ ์๋ชป ์์ฑํ๋ค๊ณ ํด๋ณด์.
Set<Lark> exaltation = new HashSet();
Venery.java:4: warning: [unchecked] unchecked conversion
Set<Lark> exaltation = new HashSet();
^
์ปดํ์ผ๋ฌ๊ฐ ์๋ ค์ค ๋๋ก ์์ ํ๋ฉด ๊ฒฝ๊ณ ๊ฐ ์ฌ๋ผ์ง๋ค.
Set<Lark> exaltation = new HashSet<>();
๊ฒฝ๊ณ ๋ฅผ ์ ๊ฑฐํ ์๋ ์์ง๋ง ํ์
์์
ํ๋ค๊ณ ํ์ ํ ์ ์๋ค๋ฉด @SuppressWarnings("unchecked")
์๋
ธํ
์ด์
์ ๋ฌ์ ๊ฒฝ๊ณ ๋ฅผ ์จ๊ธฐ์
์์ ํ๋ค๊ณ ๊ฒ์ฆ๋ ๋น๊ฒ์ฌ ๊ฒฝ๊ณ
๋ฅผ (์จ๊ธฐ์ง ์๊ณ )๊ทธ๋๋ก ๋๋ฉด, ์ง์ง ๋ฌธ์ ๋ฅผ ์๋ฆฌ๋ ์๋ก์ด ๊ฒฝ๊ณ ๊ฐ ๋์๋ ๋์น์ฑ์ง ๋ชปํ ์ ์๋ค.
ํ์ง๋ง @SuppressWarnings
์๋ํ
์ด์
์ ํญ์ ๊ฐ๋ฅํ ํ ์ข์ ๋ฒ์
์ ์ ์ฉํ์. ์์นซ ์ฌ๊ฐํ ๊ฒฝ๊ณ ๋ฅผ ๋์น ์ ์์ผ๋ ์ ๋๋ก ํด๋์ค ์ ์ฒด์ ์ ์ฉํด์๋ ์ ๋๋ค.
ํ ์ค์ด ๋๋ ๋ฉ์๋๋ ์์ฑ์์ ๋ฌ๋ฆฐ @SuppressWarnings
์๋ํ
์ด์
์ ๋ฐ๊ฒฌํ๋ฉด ์ง์ญ ๋ณ์
์ ์ธ ์ชฝ์ผ๋ก ์ฎ๊ธฐ์.
public <T> T[] toArray(T[] a) {
if(a.length < size) {
// ์์ฑํ ๋ฐฐ์ด๊ณผ ๋งค๊ฐ๋ณ์๋ก ๋ฐ์ ๋ฐฐ์ด์ ํ์
์ด ๋ชจ๋ T[]๋ก ๊ฐ์ผ๋ฏ๋ก
// ์ฌ๋ฐ๋ฅธ ํ๋ณํ์ด๋ค.
@SuppressWarnings("unchecked") T[] result =
(T[]) Arrays.copyOf(elements, size, a.getClass());
return result;
}
...
}
@SuppressWarnings("unchecked") ์๋ํ
์ด์
์ ์ฌ์ฉํ ๋๋ฉด ๊ทธ ๊ฒฝ๊ณ ๋ฅผ ๋ฌด์ํด๋ ์์ ํ ์ด์ ๋ฅผ ํญ์ ์ฃผ์
์ผ๋ก ๋จ๊ฒจ์ผ ํ๋ค.
Attribute | Description |
---|---|
all | ๋ชจ๋ ๊ฒฝ๊ณ ๋ฅผ ํ์ ์ํจ |
cast | ์บ์คํธ ์ฐ์ฐ์ ๊ด๋ จ ๊ฒฝ๊ณ ๋ฅผ ํ์ ์ํจ |
dep-ann | ์ฌ์ฉํ์ง ๋ง์์ผ ํ ์ฃผ์ ๊ด๋ จ ๊ฒฝ๊ณ ๋ฅผ ํ์ ์ํจ |
deprecation | ์ฌ์ฉํ์ง ๋ง์์ผ ํ ๋ฉ์๋ ๊ด๋ จ ๊ฒฝ๊ณ ๋ฅผ ํ์ ์ํจ |
fallthroush | switch๋ฌธ์์์ break ๋๋ฝ ๊ด๋ จ ๊ฒฝ๊ณ ๋ฅผ ํ์ ์ํจ |
finally | ๋ฐํํ์ง ์๋ finally ๋ธ๋ญ ๊ด๋ จ ๊ฒฝ๊ณ ๋ฅผ ํ์ ์ํจ |
null | null ๋ถ์ ๊ด๋ จ ๊ฒฝ๊ณ ๋ฅผ ํ์ ์ํจ |
rawtypes | ์ ๋ค๋ฆญ์ ์ฌ์ฉํ๋ ํด๋์ค ๋งค๊ฐ ๋ณ์๊ฐ ๋ถํน์ ์ผ ๋์ ๊ฒฝ๊ณ ๋ฅผ ํ์ ์ํจ |
unchecked | ๊ฒ์ฆ๋์ง ์์ ์ฐ์ฐ์ ๊ด๋ จ ๊ฒฝ๊ณ ๋ฅผ ํ์ ์ํจ |
unused | ์ฌ์ฉํ์ง ์๋ ์ฝ๋ ๊ด๋ จ ๊ฒฝ๊ณ ๋ฅผ ํ์ ์ํจ |
๋น๊ฒ์ฌ ๊ฒฝ๊ณ
๋ ์ค์ํ๋ ๋ฌด์ํ์ง ๋ง์. ๋ชจ๋ ๋น๊ฒ์ฌ ๊ฒฝ๊ณ ๋ ๋ฐํ์
์ ClassCastException
์ ์ผ์ผํฌ ์ ์๋ ์ ์ฌ์ ๊ฐ๋ฅ์ฑ
์ ๋ปํ๋ ์ต์ ์ ๋คํด ์ ๊ฑฐํ๋ผ. ๊ฒฝ๊ณ ๋ฅผ ์์จ ๋ฐฉ๋ฒ์ ์ฐพ์ง ๋ชปํ๊ฒ ๋ค๋ฉด, ๊ทธ ์ฝ๋๊ฐ ํ์
์์ ํจ
์ ์ฆ๋ช
ํ๊ณ ๊ฐ๋ฅํ ํ ๋ฒ์
๋ฅผ ์ขํ @SuppressWarnings("unchecked") ์๋ํ
์ด์
์ผ๋ก ๊ฒฝ๊ณ ๋ฅผ ์จ๊ฒจ๋ผ. ๊ทธ๋ฐ ๋ค์ ๊ฒฝ๊ณ ๋ฅผ ์จ๊ธฐ๊ธฐ๋ก ํ ๊ทผ๊ฑฐ๋ฅผ ์ฃผ์
์ผ๋ก ๋จ๊ฒจ๋ผ