Java

[Effective Java] ์•„์ดํ…œ 27. ๋น„๊ฒ€์‚ฌ ๊ฒฝ๊ณ ๋ฅผ ์ œ๊ฑฐํ•˜๋ผ.

quedevel 2023. 3. 20. 10:54
728x90
๋ฐ˜์‘ํ˜•
>

๐ŸŽฏ ์•„์ดํ…œ 27. ๋น„๊ฒ€์‚ฌ ๊ฒฝ๊ณ ๋ฅผ ์ œ๊ฑฐํ•˜๋ผ.

  • ๋น„๊ฒ€์‚ฌ ๊ฒฝ๊ณ 

    ์บก์ฒ˜5
  • ๊ฒฐ๊ณผ :

    ์บก์ฒ˜4

    ์œ„ ์ฒ˜๋Ÿผ ์˜์—ญ์ด ํ•˜์ด๋ผ์ดํŠธ๋กœ ๊ฒฝ๊ณ ๋ฅผ ๋ณด์—ฌ์ฃผ๋Š”๋ฐ ์ด๋ฅผ ๋น„๊ฒ€์‚ฌ ๊ฒฝ๊ณ ๋ผ๊ณ  ํ•œ๋‹ค.
    ์ด๋Ÿฌํ•œ ๊ฒฝ๊ณ ๋“ค์€ ํ•  ์ˆ˜ ์žˆ๋Š” ํ•œ ๋ชจ๋‘ ์ œ๊ฑฐํ•˜๋„๋ก ํ•˜์ž.
  • ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์•Œ๋ ค์ค€ ๋Œ€๋กœ ์ˆ˜์ • ( ๋‹ค์ด์•„๋ชฌ๋“œ ์—ฐ์‚ฐ์ž๋งŒ์œผ๋กœ ํ•ด๊ฒฐ )

    ์บก์ฒ˜6

but. ๊ฒฝ๊ณ ๋ฅผ ์ œ๊ฑฐํ•  ์ˆ˜๋Š” ์—†์ง€๋งŒ ํƒ€์ž… ์•ˆ์ „ํ•˜๋‹ค๊ณ  ํ™•์‹ ํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด @SuppressWarnings("unchecked") ์• ๋„ˆํ…Œ์ด์…˜์„ ๋‹ฌ์•„ ๊ฒฝ๊ณ ๋ฅผ ์ˆจ๊ธฐ์ž.


@Target({TYPE, FIELD, METHOD, PARAMETER, CONSTRUCTOR, LOCAL_VARIABLE, MODULE})
@Retention(RetentionPolicy.SOURCE)
public @interface SuppressWarnings {
    ...
}

โญ @SuppressWarnings ์• ๋„ˆํ…Œ์ด์…˜์€ ํ•ญ์ƒ ๊ฐ€๋Šฅํ•œ ํ•œ ์ข์€ ๋ฒ”์œ„์— ์ ์šฉํ•˜์ž.

  • @SuppressWarnings ์‚ฌ์šฉํ•œ ์†Œ์Šค

public class Item27 {
    public static void main(String[] args) {
        // ๋ฌด์‹œํ•ด๋„ ์•ˆ์ „ํ•œ ์ด์œ ๋ฅผ ์ฃผ์„์œผ๋กœ ๋‚จ๊ฒจ๋ผ!
        @SuppressWarnings("unchecked") Set<Member> set = new HashSet();
    }
}

โญ @SuppressWarnings ์• ๋„ˆํ…Œ์ด์…˜์„ ์‚ฌ์šฉํ•  ๋•Œ๋ฉด ๊ทธ ๊ฒฝ๊ณ ๋ฅผ ๋ฌด์‹œํ•ด๋„ ์•ˆ์ „ํ•œ ์ด์œ ๋ฅผ ํ•ญ์ƒ ์ฃผ์„์œผ๋กœ ๋‚จ๊ฒจ์•ผ ํ•œ๋‹ค.

์ฐธ๊ณ  ์ž๋ฃŒ

Joshua Bloch, ใ€ŽEffective Java 3/Eใ€, ๊ฐœ์•ž๋งต์‹œ ์˜ฎ๊น€, ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ธ์‚ฌ์ดํŠธ(2018)
http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&mallGb=KOR&barcode=9788966262281&orderClick=LEa&Kc=

728x90
๋ฐ˜์‘ํ˜•