비검사 경고 지워나가가기

Set<String> test = new HashSet();

이런 코드를 작성하면 Set와 로타입인 HashSet 간의 타입 차이로 에러가 발생한다. 자바 7부터 다이아몬드 연산자 (<>)로 타입 추론이 되긴 하지만 이를 작성하지 않으면 컴파일러는 경고한다.

경고 자체를 제거할 수는 없지만 타입이 안전한게 확실하다면 @SuppressWarning("unchecked")로 경고를 숨길 수 있다. 이 어노테이션은 너무 남발하면 좋지 않다. 예상치 못한 곳에서 런타임에 에러가 발생할 수도 있기 때문이다. 때문에 최대한 좁은 범위에 적용해야한다. 또한 위 어노테이션을 사용했다면 경고를 무시해도 된다고 선언하는 것과 같으므로 꼭 주석으로 왜 무시해도 되는지?를 남기는 것이 좋다.