Search

Item 27. 비검사 경고를 제거하라

생성일
2023/07/25 05:50
챕터
5장 - 제네릭

컴파일러 경고를 무시하지 말자

제네릭을 사용하게 되면 비검사 경고, 비검사 메서드 호출 경고, 비검사 매개변수화 가변인수 타입 경고, 비검사 변환 경고 등 많은 제네릭 경고가 발생할 수 있다. 이런 비검사 경고들을 무시하지 말고 전부 제거하는 것이 좋다.
이런 비검사 경고들은 대부분 컴파일러가 일러준 대로 수정하면 경고가 사라지는데, 경고들을 모두 제거하면 타입 안전성이 보장되어 런타임에 ClassCastException이 발생할 일이 없고 의도한 대로 동작하게 된다.
만약 경고를 제거할 수는 없는 상황이지만 타입 안전성이 보장된다고 확신할 수 있다면, @Suppress Warning(”unchecked”) 애노테이션을 달아 경고를 숨겨 새로운 경고가 발생했을 때 바로 눈치챌 수 있도록 하자.
다만 이런 애노테이션은 타입 안전성이 확실하게 보장된 상황에서만 사용하여야하고, 가능한 좁은 범위에 적용하자. 또한 애노테이션을 사용할 때 안전한 이유를 항상 주석으로 남겨 다른 사람이 해당 코드를 이해하고 잘못 수정되지 않게 만들자.