Eclipse  serialversionUID 가 누락되면 경고가 발생합니다.
Serializable 클래스 Foo는 정적 최종을 선언하지 않습니다. SerialVersionUID 유형의 필드입니다
 serialversionUID  란 무엇이며 왜 중요합니까? serialversionUID  누락 된 예제를 보여주십시오.
해결 방법
직렬화 런타임 동료와 직렬화 된 객체의 보낸 사람과 수신자가 존경과 호환되는 해당 객체에 대한 클래스가로드되었는지 확인하기 위해 deserialization에서 사용되는
serialversionUID라는 버전 번호와 함께 사용되는 버전 번호와 함께직렬화에.수신자가 해당 송신자의 클래스보다 다른serialversionuid를 가진 객체에 대한 클래스를로드 한 경우 deserialization은
ANY-ACCESS-MODIFIER static final long serialVersionUID = 42L;
Serializable 클래스가
serialversionUID를 명시 적으로 선언하지 않으면, 직렬화 런타임은 클래스의 다양한 측면을 기반으로 해당 클래스의 기본serialversionuid값을 계산합니다. Java (TM) 오브젝트 직렬화 사양. 그러나 모든 직렬화 가능한 클래스는 기본serialversionuid계산이 다양 할 수있는 클래스 세부 정보에 매우 민감하기 때문에 모든 직렬화 가능한 클래스가serialversionuid값을 명시 적으로 선언하는 이 강력하게 권장됩니다. 컴파일러 구현에 따라 Deserialization 동안 예기치 않은invalidClassExceptions를 초래할 수 있습니다. 따라서 다른 Java 컴파일러 구현에서 일관된serialversionuid값을 보장하기 위해 Serializable 클래스는 명시 적serialversionuid값을 선언해야합니다. 또한 명시 적serialversionUID선언이 가능한 경우 개인 수정자를 사용하는 것이 좋습니다. 그러한 선언은serialversionUID필드에 즉시 선언하는 즉시 적용되므로 상속 된 구성원으로 유용하지 않기 때문입니다.
참조 페이지 https://stackoverflow.com/questions/285793
'자바' 카테고리의 다른 글
| 새 요소를 배열에 추가하는 방법은 무엇입니까? (0) | 2021.04.16 | 
|---|---|
| Java에서 다른 생성자를 어떻게 호출합니까? (0) | 2021.04.14 | 
| 파일을 만들고 쓸 수 있습니까? (0) | 2021.04.14 | 
| "비 정적 메소드가 정적 컨텍스트에서 참조 할 수 없음"이유는 무엇입니까? (0) | 2021.04.14 | 
| 정규 표현식에서 "어떤 문자"와 일치하는 방법은 무엇입니까? (0) | 2021.04.14 | 
댓글