-
[JAVA / SPRING] @SuppressWarnings 어노테이션자바 2024. 11. 28. 10:15
@Setter @Getter @SuppressWarnings("serial") public class ExVo extends BaseObject implements Cloneable { private String exCd1; private String exCd2; .... }
저번 프로젝트 소스를 보니 모든 VO에 @SuppressWarnings 어노테이션이 붙어있었다
@SuppressWarnings 이란?
@SuppressWarnings 어노테이션은 컴파일 경고를 사용하지 않도록 설정해 주는 것
IDE에서 노란색 표시줄이 나타내는 것 즉, 경고를 제외시킬 때 사용한다@SuppressWarnings 속성
- all : 모든 경고
- @SuppressWarnings("all")
- cast : 캐스트 연산자 관련 경고
- dep-ann : 사용하지 말아야 할 주석 관련 경고
- deprecation : 권장되지 않는 기능과 관련된 경고
- @SuppressWarnings("deprecation")
- fallthrough : switch문에서 break 누락 관련 경고
- finally : 반환하지 않는 finally 블럭 관련 경고
- null : null 분석 관련 경고
- rawtypes : 제너릭을 사용하는 클래스 매개 변수가 불특정일 때의 경고
- unchecked : 검증되지 않은 연산자 관련 경고
- unused : 사용하지 않는 코드 관련 경고
- @SuppressWarnings("unused")
@SuppressWarnings("serial")
java.io.serializable 인터페이스를 implements 할 때 serialVersionUID를 정의해주지 않은 경우 warning을 체크하지 않음
어노테이션을 사용해도 되지만 SerialVersionUID를 선언해 주는 것이 권장되는 방법- SerialVersionUID : 직렬화하면 내부에서 자동으로 SerialVersionUID라는 고유의 번호를 생성하여 클래스의 버전을 관리
- 직렬화 : 자바 시스템 내부에서 사용되는 객체 또는 데이터를 외부의 자바 시스템에서도 사용할 수 있도록 바이트(byte) 형태로 데이터 변환하는 기술 및 변환된 데이터를 다시 객체로 변환하는 기술(역직렬화)
여전히 남는 의문은 ...
serializable 인터페이스를 implements 하지 않은 모든 VO에 일괄적으로 해당 어노테이션을 사용했다는 점인데...?
728x90'자바' 카테고리의 다른 글
[JAVA] 자바 mid1 4 - 6 강 요약 (0) 2024.12.29 [JAVA] 자바 mid1 7 - 8 강 요약 (0) 2024.12.29 [JAVA] 자바 mid1 4 - 6 강 요약 (0) 2024.11.23 [JAVA] 자바 mid1 1 - 3 강 요약 (0) 2024.11.21 [JAVA] 자바 basic 9 - 12 강 요약 (3) 2024.11.20 - all : 모든 경고