#24 컴파일 경고 메시지가 없게 하자
제목 그대로 컴파일 경고 메시지를 없애자는 내용인데, 당연한 얘기입니다.
제네릭을 이용하다 보면 unchecked 캐스트 경고, 변환 경고, 메서드 호출 경고 등 다양한 컴파일 경고 메시지들을 보게 됩니다.
이러한 경고 메시지를 없애는 방법에 대해 알아보겠습니다.
아래 코드를 보면 Unchecked 경고 메시지가 발생한 코드와 이를 수정한 코드가 있습니다.
이러한 경고 메시지들을 없애면, 코드의 타입 안전이 보장되므로 ClassCastException 런타임 에러가 발생하지 않습니다.
간단하게 수정이 가능한 것도 있지만, 일부 경고 메시지는 수정이 불가능할 수 도 있습니다.
만약 경고 메시지를 유발한 코드가 타입 안전을 보장한다면 @SuppressWarning("unchecked") 주석을 통해 경고 메시지가 안 나타나게 할 수 있습니다.
SuppressWarning 주석은 지역 변수부터 클래스까지 다양한 범위에 이용할 수 있는데, 가급적이면 제일 작은 범위인 지역 변수로 이용하는 게 좋습니다.
아래 코드를 보면, 지역 변수에 SuppressWarning 주석을 추가해, 경고 메시지를 없애 버렸습니다.
그리고 SuppressWarning 주석을 추가할 때는 그 이유에 대한 내용도 별도로 주석으로 추가해야 합니다.