본문 바로가기

JAVA

@SuppressWarnings 어노테이션

어노테이션 종류 

@SuppressWarnings

컴파일러 경고(Warning)를 무시하도록 지시하는 어노테이션

 

자바 컴파일러는 코드에서 잠재적인 위험이나 불필요한 부분을 발견하면 경고를 띄운다.
그런데 개발자가 일부러 그렇게 작성한 코드라면,
그 경고를 "무시하라"는 의미로 @SuppressWarnings를 쓴다.


 기본 문법

@SuppressWarnings("경고이름")

예를 들어:

@SuppressWarnings("unchecked")
List<String> list = new ArrayList();
list.add("hi");

➡️ 원래는 new ArrayList()에서 제네릭 타입이 빠져서 경고가 나와야 하지만
@SuppressWarnings("unchecked")를 붙이면 경고를 무시


🔹 자주 쓰는 종류

경고 이름 설명

"unchecked" 제네릭 형변환 관련 경고 (ex: List → List<String>)
"deprecation" 더 이상 사용되지 않는 API (@Deprecated) 경고 무시
"rawtypes" 제네릭 타입을 지정하지 않은 raw type 사용 경고
"unused" 사용하지 않는 변수/메서드 경고 무시
"all" 모든 경고 무시 (비추천 ⚠️)

🔹 사용 예시

public class Example {

    @SuppressWarnings("unused")
    private void test() {
        int x = 10;  // 사용되지 않지만 경고 무시됨
    }

    @SuppressWarnings({"rawtypes", "unchecked"})
    public void legacyMethod() {
        List list = new ArrayList();  // raw type
        list.add("Hello");
    }
}

🔹 주의할 점

  • @SuppressWarnings("all")은 남용하지 말 것. (디버깅 시 문제 추적이 어려워짐)

✅ 요약

항목 의미

역할 컴파일 경고를 무시하도록 지시
사용 위치 클래스, 메서드, 변수, 생성자 등
대표 예시 "unchecked", "deprecation", "unused"
주의점 남용 금지, 꼭 이유 있는 경우만 사용

 

@unused 사용 자주하는데 이는 사용하지 않는 변수 /메서드 경고를 무시한다.

 

 

 

'JAVA' 카테고리의 다른 글

Logger , LoggerFactory 를 사용하는 이유  (0) 2025.11.12
@Configuration 과 xml 과 yml 설정 파일의 차이  (1) 2025.11.12
JDK, JRE ,JVM  (0) 2025.08.28
JAR 와 WAR 의 차이  (0) 2025.08.28
static  (0) 2025.08.19