제네릭으로 프로그램하다보면 많은 컴파일러 경고메시지를 보게 된다. 아래가 그러한 경고이다.
- 무점검 형변환 경고(unchecked cast warning)
- 무점검 메서드 호출 경고(unchecked method invocation warning)
- 무점검 제네릭 배열 생성 경고(unchecked generic array creation warning)
- 무점검 변환 경고(unchecked conversion warning)
- etc...
제네릭에 대한 경험이 많고 코드에 대한 경험이 많다면 경고메시지가 줄어들지만 아직도 많은 제네릭 코드들이 경고메시지를 날리고 있다. 이러한 경고메시지를 제거하기 위해서 @SupressWarnings("unchecked") 어노테이션(annotation)을 사용해 억제한다.
하지만 @SupressWarnings("unchecked") 어노테이션(annotation)은 개별 지역변수 선언부터 클래스 전체에까지, 어떤 크기의 단위에도 적용할 수 있어서 중요한 경고 메시지를 놓치게 될 수 있으므로, 가능한한 작은 범위에 적용해야한다.
또한 @SupressWarnings("unchecked") 어노테이션(annotation)을 사용할 때 마다, 왜 형 안전성을 위반하지 않는지 밝히는 주석을 붙여 다른 사람이 코드를 쉽게 이해할 수 있도록 도와야 한다.
End of Document
반응형
'개발이야기 > Effective Java' 카테고리의 다른 글
[Effective Java]가능하면 제네릭 자료형으로 만들 것 (0) | 2017.04.16 |
---|---|
[Effective Java]새 코드에는 무인자 제네릭 자료형을 사용하지 마라 (0) | 2017.04.15 |
[Effective Java]자료형을 정의할 때 표식 인터페이스를 사용하라 (259) | 2017.03.10 |
[Effective Java]Override 어노테이션은 일관되게 사용하라 (250) | 2017.03.10 |
[Effective Java]작명 패턴 대신 어노테이션을 사용하라 (575) | 2017.03.10 |
[Effective Java]int 상수 대신 enum을 사용하라 (1100) | 2017.03.10 |