1. 개요
- 객체를 파일에 쓰거나 전송하기 위해 객체 클래스에 Serializable 인터페이스를 implements 함.
- 하지만, Serializable 인터페이스를 implements 하게 되면 warnning이 발생한다.
- warnning이 발생하지만 동작하는데는 문제가 없다.
- 불필요한 warnning을 제거하는 방법.
2. @SuppressWarings
- 부적절한 compiler의 경고를 제거하기 위해 사용
- compile 시 warnning을 체크하지 않기 위해 사용
2. serial
- java.io.Serializable 인터페이스를 implements 할때,
serialVersionUID를 정의해주지 않은 경우 나타나는 warnning을 체크하지 않음
3. serialVersionUID 란?
- 직렬화에 사용되는 고유 ID
- 선언하지 않으면 JVM에서 default로 자동 생성
- 선언하지 않아도 동작하는데 문제는 없지만,
JAVA에서는 명시적으로 serialVersionUID를 선언할 것을 적극 권장
※ JVM에 의한 default serialVersionUID 계산은 클래스의 세부 사항을 민감하게 반영하기 때문에
컴파일러 구현체에 따라 달라질 수 있어 deserialization 과정에서 예상하지 못한
InvalidClassException을 유발할 수 있다.
4. 결론
@SuppressWarnnings("serial") 어노테이션 처리를 해줘도 되지만,
SerialVersionUID를 선언해주는 것이 권장되는 방법이다.
난... 그냥...
@SuppressWarnning("serial") 어노테이션을 쓴다.
'IT > Development' 카테고리의 다른 글
The 2nd Node.js Korea Conference - 개발시 염두할 점 (0) | 2015.11.18 |
---|---|
[JSTL] javascript 영역에서 JSTL 함수 사용에 대한 고찰 (0) | 2014.03.19 |
[Mybatis] 동적쿼리 <if> 비교 (0) | 2014.03.13 |
[JSTL] 자주쓰는 Function (fn) 정리 (0) | 2014.02.17 |