ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [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
Designed by Tistory.