-
@SuppressWarnings 어노테이션Spring Boot 2024. 8. 29. 10:30
회사 프로젝트 내에서 Reflection 을 도입하고 알게된 어노테이션인데
vaule 값에 따라 기능하는 종류가 여러개 있다는 것을 알게 되었다.
회사에서 쓰이는 value는 unchecked
@SuppressWarnings("unchecked")는 Java 애노테이션으로, 컴파일러에게 특정 경고를 무시하도록 지시하는 역할을 한다.
회사에서 쓰이고 있는 "unchecked"라는 경고는 제네릭 타입의 강제 형변환과 관련된 경고를 의미했던 것이 었다.
rawList가 제네릭 타입이 지정되지 않은 원시 타입(raw type)이기 때문에, List<String>으로 강제 형변환할 때 컴파일러는 "unchecked" 경고를 발생시킨다. 이는 컴파일 타임에 타입 안정성을 보장할 수 없다는 의미한다.
주의사항:
- 이 어노테이션은 코드에서 발생할 수 있는 타입 안전성 문제를 감추는 것이므로, 잘못 사용하면 런타임에 ClassCastException 같은 오류가 발생할 수 있다는 점.
- @SuppressWarnings("unchecked")를 사용할 때는 코드의 타입 안전성을 충분히 이해하고 신중하게 사용해야 한다고 한다.
요약하자면, @SuppressWarnings("unchecked")는 제네릭 타입을 강제 형변환할 때 발생하는 컴파일러 경고를 무시하기 위해 사용된다.
()안에 value 값을 달리하여 옵션을 다르게 설정 가능하다.
옵션 종류를 알아보자.
1. all : 모든 경고를 억제
2. cast : 캐스트 연산자 관련 경고 억제
3. dep-ann : 사용하지 말아야 할 주석 관련 경고 억제
4. deprecation : 사용하지 말아야 할 메소드 관련 경고 억제
5. fallthrough : switch문에서의 break 누락 관련 경고 억제
6. finally : 반환하지 않는 finally 블럭 관련 경고 억제
7. null : null 분석 관련 경고 억제
8. rawtypes : 제네릭을 사용하는 클래스 매개 변수가 불특정일 때의 경고 억제
9. unchecked : 검증되지 않은 연산자 관련 경고 억제
10. unused : 사용하지 않는 코드 관련 경고 억제'Spring Boot' 카테고리의 다른 글
[Spring boot] QueryDSL 알리아스 (0) 2025.03.07 [Spring boot] 엔티티 복합키 설정 (0) 2025.03.06 [Spring boot] ResultSet java.sql.SQLDataException / Error attempting to get column '컬럼' from result set - 트러블 슈팅 (0) 2024.07.27 [Spring boot] Result Map 매핑 안되는 오류 (나는 진짜 바보인가) (0) 2024.07.27 [Spring boot] @RequestParam / @RequestBody + @RequestPart 구분하기 (0) 2024.07.27