Serializable
클래스의 조상에 serialVersionUID
을 넣어야합니까? 아니면 Serializable
클래스 자체에 있습니까?Serializable 클래스의 조상에 serialVersionUID를 넣어야합니까?
답변
serialVersionUID를 전혀 넣지 않아도됩니다.
자바는 자동으로 등 필드, 메소드에 따라 클래스에 대한 적절한 일련 ID를 결정합니다
당신이 파일로 객체를 포함 할 것이다로드해야 할 때 serialVersionUIDs이 할 수있는 유일한 적절한 시간이다 나중에 코드를 변경 한 후에도
다른 버전의 라이브러리를 사용하는 구성 요소간에 유선을 통해 데이터를 전송하려는 경우.
사람들이 직렬화를 필요로하는 시간의 90 %는 실시간이며 양쪽에서 일치하는 라이브러리 버전이 보장됩니다. 이러한 경우 serialVersionUID를 설정할 필요가 없으며 호환되지 않는 라이브러리 버전이 있지만 sID를 변경하지 않은 경우 실제로 문제가 발생할 수 있습니다. 자바가 순차적으로 호환 가능하다고 생각하기 때문에 이상한 오류가 발생하기 시작합니다. 실제로는 그렇지 않습니다. 뿐만 아니라 이러한 질문에
이봐 :
Is there a reason to use a real serialVersionUID?
Why generate long serialVersionUID instead of a simple 1L?
What is a serialVersionUID and why should I use it?
편집 추가 :
를 원래의 질문에 관해서는, 어떤 당신은 필요 없어 조상들에 대해 걱정할 필요가 있습니다. serialVersionUID는 호환 가능한지 여부를 Java에 알려줍니다.
그러나 조상이 변경되고 serialVersionUID가 변경되지 않은 경우 사용자가 말하는 경우에도 호환되지 않을 수 있습니다. 당신이 그것을 전혀 설정하지 않아야하는 또 다른 이유.
질문의 요점을 놓친 것 같습니다. 그것은 당신이'serialVersionUID'를 사용해야하는지 아닌지에 대해서가 아니고, 만약 당신이 * 그것을 사용했다면, 그것은 서브 클래스뿐만 아니라 슈퍼 클래스에도 있어야합니까? – skaffman
글쎄, 그는 물어 봤어, 그리고 "나는 그냥 Serializable 클래스 자체에?" 그의 전제는 잘못된 정보가 여러 해에 걸쳐 전달 되었기 때문에 잘못되었다. 그래서 나는 그것을 고치고있다. –
예고하지 않은 경우 마지막 링크에서 수락되고 가장 많이 투표 된 답변은 실제로 답변의 반대입니다. 당신은 항상 하나를 선언하는 것이 좋습니다 (Serializable을위한 실제 javadoc). 첫 번째와 두 번째 링크는 서로 다르지만 관련된 문제입니다. – Robin
- 1. serializable 클래스의 이름 바꾸기
- 2. WPF의 조상에 바인딩
- 3. GWT RemoteServiceServlet - 왜 Serializable이고 어떻게 serialVersionUID를 처리합니까?
- 4. serialVersionUID를 이미 사용중인 직렬화 가능 클래스에 추가합니다.
- 5. 여기서 serialVersionUID를 사용하는 목적은 무엇입니까?
- 6. Resharper는 Serializable 클래스의 자동 속성으로 자동 변환되지 않습니다. 그렇습니까?
- 7. Serializable 클래스 컬렉션
- 8. 자바에서 serializable 작업은 어떻게됩니까?
- 9. Serializable java.lang.Locale
- 10. Java Serializable
- 11. Serializable 상속
- 12. Hibernate와 Serializable Entities
- 13. Serializable 클래스에서 RSAKeyValue 속성 serialize
- 14. 은 C#에서 [Serializable]과 [Serializable()] 사이에 차이가 있습니까?
- 15. connectionString은 ASP.Net 3.5에 어디에 넣어야합니까?
- 16. @SerialVersionUID를 익명 클래스에 추가하는 방법은 무엇입니까?
- 17. 이중 가새 초기화가 SerialVersionUID를 묻는 이유는 무엇입니까?
- 18. 안드로이드 - Serializable 인터페이스 문제
- 19. Android : Serializable Intent
- 20. 예외, Return, Serializable,
- 21. XStream serializable objects
- 22. 값 개체에 Serializable 구현?
- 23. Serializable 예외 및 WCF
- 24. serializable LookAndFeel - ClassCastException
- 25. DataContractAttribute 및 Serializable 사용
- 26. Serializable ArrayList - IOException 오류
- 27. MarshalByRefObject 필드가있는 Serializable 개체
- 28. Groovy Expando Serializable
- 29. NSObject의 사용자 지정 클래스 만들기 serializable
- 30. Doctrine에서 직접 메서드를 넣어야합니까?
계층 구조의 각 클래스에 필요합니다. – bestsss
@skaffman @bestsss Serializable 클래스에만 필요하며, Serializable이 아닌 조상은 필요 없습니다. – EJP