반응형
제네릭을 사용하다보면 다양한 원인으로 인해 컴파일러 경고 메시지를 보게된다.
이런 무점검 경고 가운데 상당수는 쉽게 없앨 수 있다.
예를 들면 다음과 같은 경우가 있다.
1 2 3 4 5 6 | Set<Babo> example = new HashSet(); // warning : unchecked conversion // 해결 방법 Set<Babo> example = new HashSet<>(); | cs |
이런 예와 같은 무점검 경고는 가능하다면 없애야 typesafe(형안전성)을 보장할 수 있어
ClassCastException 발생을 방지할 수 있다.
형 안전성이 확실한 코드를 계속
warning 상태로 놔두게 되면 진짜 중요한 메시지를 놓칠 수 있기 때문에
만약 제거가 어려운 경고 메시지는 형 안전성이 확실하다고 생각될 경우에만
@SupressWarnings("unchecked") 어노테이션을 사용한다.
하지만 @SupressWarnings("unchecked") 어노테이션을 사용할 경우에는 범위를 줄여서 사용해야 하며, 왜 형 안정성이 확보가 된다고 판단이 되는지 주석을 달아주어야 한다.
출처 : 조슈아 블로크, 『 Effective Java 2/E』, 이병준 옮김, 인사이트(2014.9.1), 규칙24 인용.
반응형
'JAVA > Effective Java' 카테고리의 다른 글
제네릭 - 규칙 26 가능하면 제네릭 자료형으로 만들 것 (0) | 2018.05.29 |
---|---|
제네릭 - 규칙 25 배열 대신 리스트를 써라 (0) | 2018.05.29 |
제네릭 - 규칙 23 새 코드에는 무인자 제네릭 자료형을 사용하지 마라 (0) | 2018.05.29 |
클래스와 인터페이스 - 규칙22 멤버 클래스는 가능하면 static으로 선언하라. (0) | 2018.05.29 |
클래스와 인터페이스 - 규칙 21 전략을 표현하고 싶을 때는 함수 객체를 사용하라. (0) | 2018.05.29 |