최근에 serialVersionUID를 사용하여 같은 클래스의 다른 버전을 serialization/deserialization과 호환 가능하게 만드는 것이 Java 5 이상에서 필요하지 않다는 의견을 읽었습니다. 이 올바른지? 어쩌면 공변 반환 유형이 섞여있을 수도 있습니다. 그래서 여러분 모두와 함께 그것을 확인하고 싶었습니다.Java 5 이상에서 serialVersionUID가 더 이상 필요하지 않습니까?
답변
JavaDocs for Java 5 여전히이 필요하다고 주장한다 :
직렬화 가능 클래스가 명시 적으로 serialVersionUID를 선언하지 않는 경우, 직렬화 런타임이 클래스의 다양한 측면을 기준으로 그 클래스에 대한 기본 serialVersionUID의 값을 계산합니다 Java (TM) Object Serialization Specification에 설명되어 있습니다. 그러나 기본 serialVersionUID 계산은 컴파일러 구현에 따라 달라질 수있는 클래스 세부 정보에 매우 민감하므로 deserialization 중에 예기치 않은 InvalidClassExceptions이 발생할 수 있으므로 모든 serializable 클래스에서 serialVersionUID 값을 명시 적으로 선언하는 것이 좋습니다. 따라서 서로 다른 Java 컴파일러 구현에서 일관된 serialVersionUID 값을 보장하려면 직렬화 가능 클래스가 명시 적 serialVersionUID 값을 선언해야합니다. 또한 명시 적 serialVersionUID 선언은 가능한 경우 private 한정자를 사용합니다. 이러한 선언은 즉시 선언하는 클래스에만 적용되므로 serialVersionUID 필드는 상속 된 멤버로 유용하지 않습니다.
심지어 [Java 7 docs] (http://download.oracle.com/javase/7/docs/api/java/io/Serializable.html)에도 같은 면책 조항이 있습니다. –
Java 1.4부터 대부분의 다른 직렬화 라이브러리와 마찬가지로을 serialization에 사용할 수 있었으며 serialVersionUID를 무시합니다.
그러나 ObjectOutputStream을 사용하는 경우 serialVersionUID의 사용법은 변경되지 않았습니다.
- 1. -moz 및 -webkit css가 더 이상 필요하지 않습니까?
- 2. 더 이상 Flash Builder 4가 필요하지 않습니다!
- 3. WSE2는 더 이상 사용되지 않습니까?
- 4. LDAP가 더 이상 사용되지 않습니까?
- 5. MSMQ는 더 이상 사용되지 않습니까?
- 6. OCR은 더 이상 문제가되지 않습니까?
- 7. 프로젝트에서 더 이상 필요하지 않은 프로젝트의 클래스 목록을 얻는 방법
- 8. ArrayList 유형이 .NET 3.5 이상에서 더 이상 지원되지 않습니다?
- 9. winform이 더 이상 필요하지 않을 때 최종 작업 수행을위한 솔루션
- 10. Log4perl logger가 더 이상 필요하지 않을 때 처분
- 11. 더 이상 필요하지 않으면 슈퍼 뷰에서보기를 올바르게 제거하는 방법은 무엇입니까?
- 12. MVVM에서 ObjectDataProvider가 필요하지 않습니까?
- 13. 언제 typedef가 필요하지 않습니까?
- 14. 실시간 Linux 확장은 더 이상 사용되지 않습니까?
- 15. 스칼라에서는 DAO 패턴이 더 이상 사용되지 않습니까?
- 16. Linq가 NHibernate에 더 이상 활성화되어 있지 않습니까?
- 17. 깨진 파이프가 더 이상 프로그램을 종료하지 않습니까?
- 18. 왜 ValidateUser는 더 이상 반환하지 않습니까?
- 19. NVelocity는 더 이상 문자열 템플릿을 지원하지 않습니까?
- 20. Microsoft Message Queue 더 이상 사용되지 않습니까?
- 21. Delphi : SW_HIDE가 더 이상 작동하지 않습니까?
- 22. Seq.generate가 정의되지 않았습니다. - 더 이상 사용되지 않습니까?
- 23. LINQ to SQL은 더 이상 사용되지 않습니까?
- 24. Mac 플러그인은 더 이상 GetWindowFromPort를 지원하지 않습니까?
- 25. WCF에서 HTTPContext가 더 이상 사용되지 않습니까?
- 26. Scroll Lock 버튼을 더 이상 사용하지 않습니까?
- 27. 재귀 구조형은 scala에서 더 이상 지원되지 않습니까?
- 28. MOBILE 사이트 버전을 더 이상 만들지 않습니까?
- 29. jQuery.data가 더 이상 윈도우에서 작동하지 않습니까?
- 30. JavaServer Faces 1.2는 더 이상 사용되지 않습니까?
관련 링크를 게시 할 수 있습니까? – Santosh
불행히도 해당 링크에 액세스 할 수 없습니다. 콘텐츠가 삭제되었을 수도 있습니다. – shrini1000