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