제네릭에서 주로 발생하는 컴파일러 경고

  • 비검사 형변환 경고
  • 비검사 메소드 호출 경고
  • 비검사 매개변수화 가변인수 타입 경고
  • 비검사 변환 경고 등

잘못된 예시

Set<Lark> exaltation = new HashSet()

수정 후

Set<Lark> exaltation = new HashSet<>() // 다이아몬드 연산자 추가

대부분의 비검사 경고를 제거 후 사용해야 하지만 안정성에 자신이 있다면

@SuppressWarnings("unchecked") 어노테이션을 달아 경고를 숨기면 된다.

 

그러나 무분별하게 사용하지 말고 가능한 좁은 범위에 적용하는 것이 중요하다.

 

예를 들어 메소드에서 오류가 발생했다면 메소드 자체를 어노테이션을 묶는 것이 아닌

메소드 안에 발생한 지역변수에 감싸주는 것이다.

 

그 이후에 경고를 숨기기로 한 근거를 주석으로 남겨 다른 사람이 코드를 이해하는데 도움을 주어야 한다.

+ Recent posts