Java @SuppressWarnings 어노테이션 사용방법
자바 스프링 프레임워크 기반에서 Back End 코드를 작성하다보면 @SuppressWarnings를 만나게 된다.
이는 노란색으로 경고를 준다. 의미하는 바는 “사용하지 않는 것이 좋겠다” 라고 경고를 해주는 것이다.
사용방법은 간단하다.
@SuppressWarnings(“unused”)
여러개를 동시에 경고 무시도 가능하다. {}괄호를 사용하며, 구분자는 콤마(,)이다.
@SuppressWarinings({“rawtypes”,”unchecked”})
import java.io.Serializable;
@SuppressWarnings("serial")
public class VersionVo implements Serializable{
private String version;
public String getVersion(){
return version
};
}
@SuppressWarnings의 지원되는 값은 다음과 같다.
unused : 사용하지 않은 코드 및 불필요한 코드와 관련된 경고를 억제
cast : 캐스트 오퍼레이션과 관련된 경고를 억제
unchecked : 미확인 오퍼레이션과 관련된 경고를 억제
null : 널(null) 분석과 관련된 경고를 억제
divzero : 0으로 나누는 케이스 경고 억제
rawtypes : 원시 유형 사용법과 관련된 경고를 억제
serial : 직렬화 가능 클래스에 대한 누락된 serialVersionUID 필드와 관련된 경고를 억제
all : 모든 경고를 억제
deprecation : 권장되지 않는 기능과 관련된 경고를 억제
incomplete-switch : switch 문에서 누락된 항목과 관련된 경고를 억제(enum case)
resource : 닫기 가능 유형의 자원 사용에 관련된 경고 억제
restriction : 올바르지 않거나 금지된 참조 사용법과 관련된 경고를 억제
static-access : 잘못된 정적 액세스와 관련된 경고를 억제
static-method : static으로 선언될 수 있는 메소드와 관련된 경고를 억제
이 외에도 많은 지원되는 값들이 있다.
@SuppressWarnings 어노테이션 사용시 주의 사항
1) 클래스 레벨에서 @SuppressWarnings( “checked) 또는 기타 옵션을 넣으면 안된다. 이로 인해 잠재적으로 중요한 경고가 숨겨 질 수 있습니다.
2) 가장 작은 범위에서 @SuppressWarnings 를 사용해야 한다. 즉, class, field, method, parameter, constructor and local variables
4) @SuppressWarnings ( “all”)을 사용하지 말라. 모든 경고가 표시 되지 않으므로 프로그램을 실행할 때 RuntimeException 오류가 발생할 수 있는 잠재적 경고가 숨겨질 수 있다.