스터디/이펙티브 자바

[Effective Java] Item27. 비검사 경고를 제거

📝 작성 : 2022.06.11  ⏱ 수정 : 
728x90

제네릭을 사용하면 비검사 형변환 경고, 비검사 메서드 호출 경고, 비검사 매개변수화 가변인수 타입 경고, 비검사 변환 경고 등 수 많은 컴파일 경고를 볼 수 있습니다.

이 중 제거하기 쉬운 경고도 있지만 제거하기 어려운 경고도 있습니다. 하지만 할 수 있는 한 모든 비검사 경고를 제거해야 합니다.

이러한 경고를 모두 제거 했다면 타입의 안전성이 보장됩니다. 즉, 런타임에 ClassCastException이 발생할 일이 없고, 의도대로 잘 작동하리라 확신 할 수 있습니다.

경고를 제거할 수는 없지만 타입이 안전하다고 확인할 수 있다면 @SuppressWarnings("unchecked")어노테이션을 달아 경고를 숨길 수 있습니다. 하지만 이를 오,남용하게 된다면 진짜 문제를 알리는 새로운 경고가 나와도 눈치채지 못할 수 있기 때문에 가능한 좁은 범위에 적용해야 합니다.

또한, @SuppressWarnings("unchecked")어노테이션을 사용할 때면 경고를 무시해도 안전한 이유를 항상 주석으로 남겨야 합니다. 다른 사람이 코드를 이해하고 추후 수정할 때 도움을 줄 수 있기 때문입니다.

반응형