Effective Java 3rd ITEM 27

ITEM 27. Eliminate unchecked warnings

제네릭을 사용하다보면 비검사 경고가 많이 생기게 된다. 보통 컴파일러가 무엇이 잘못되었는지 친절하게 설명해주니 그에 따라 수정하자.
최대한 모든 비검사 경고를 제거하다보면 코드의 타입 안정성이 보장된다.

Suppress Warnings

만약 경고를 제거할 수는 없지만 타입이 안전하다고 확신한다면 @SuppressWarnings("unchecked")를 달아 경고를 숨길 수 있다.
@SuppressWarnings는 지역변수에도 달 수 있고 클래스 전체에도 달 수 있다. @SuppressWarnings을 달더라도 최대한 좁은 범위에 적용하자.
이 어노테이션은 선언에만 달 수 있기 때문에 return 문에는 못 써서 따로 변수 선언이 필요할 수 있다.

@SuppressWarnings을 사용할 때는 사용한 이유에 대해 항상 주석을 남겨 다른 사람에게 혼란을 주지 않아야 한다.