brunch
매거진 Effective Java

제네릭(Generics)

#24 컴파일 경고 메시지가 없게 하자

by 이승현

Effective Java - 제네릭(Generics)


#24 컴파일 경고 메시지가 없게 하자


제목 그대로 컴파일 경고 메시지를 없애자는 내용인데, 당연한 얘기입니다.


제네릭을 이용하다 보면 unchecked 캐스트 경고, 변환 경고, 메서드 호출 경고 등 다양한 컴파일 경고 메시지들을 보게 됩니다.

이러한 경고 메시지를 없애는 방법에 대해 알아보겠습니다.




@SuppressWarning


아래 코드를 보면 Unchecked 경고 메시지가 발생한 코드와 이를 수정한 코드가 있습니다.

이러한 경고 메시지들을 없애면, 코드의 타입 안전이 보장되므로 ClassCastException 런타임 에러가 발생하지 않습니다.

제목 없음.png #01 Unchecked 경고 메시지


간단하게 수정이 가능한 것도 있지만, 일부 경고 메시지는 수정이 불가능할 수 도 있습니다.

제목 없음.png #02 Unchecked 경고 메시지


만약 경고 메시지를 유발한 코드가 타입 안전을 보장한다면 @SuppressWarning("unchecked") 주석을 통해 경고 메시지가 안 나타나게 할 수 있습니다.


SuppressWarning 주석은 지역 변수부터 클래스까지 다양한 범위에 이용할 수 있는데, 가급적이면 제일 작은 범위인 지역 변수로 이용하는 게 좋습니다.


아래 코드를 보면, 지역 변수에 SuppressWarning 주석을 추가해, 경고 메시지를 없애 버렸습니다.

그리고 SuppressWarning 주석을 추가할 때는 그 이유에 대한 내용도 별도로 주석으로 추가해야 합니다.

캡처1.PNG #03 @SuppressWarning



keyword
매거진의 이전글제네릭(Generics)