2017-09-20 8 views
0

오브젝트 직렬화가 Java8에서 Java7로 역 호환됩니까?직렬화 호환성 Java 7/8

Java 직렬화 사양 (http://docs.oracle.com/javase/8/docs/platform/serialization/spec/serialTOC.html)을 사용하면 클래스 A를 Java8 응용 프로그램으로 컴파일하고 A 객체를 파일로 직렬화 한 다음 Java7 응용 프로그램에서 해당 객체를 직렬화 해제 할 수 있습니다. 클래스 A의 같은 버전으로 컴파일).

누가 다른 주요 버전을 구체적으로 지정하는 사양의 정확한 부분을 지적 해 주시겠습니까? 아무 것도 없다면 어떤 부분에서 호환성을 추론 할 수 있습니까?

미리 감사드립니다.

참고 : 사양의 섹션 5.1은 클래스 버전 호환성을 나타내지 만 은 Java 버전 호환성이 아닙니다.

+5

물론 버전. 그것은 정확히 명시 적 serialVersionUID가 무엇을위한 것입니다. – Holger

+0

@Holger 물론, 질문에는'serialVersionUID'에 관한 것이 없습니다. – EJP

+0

@EJP : 질문이 완전히 다시 작성되기 전에였습니다. 나는 Stackoverflow에 충분한 경험이 있어야 포스트가 편집 될 수 있고 편집 시간을 코멘트의 시간과 비교할 수 있다는 것을 알았습니다. – Holger

답변

2

예. 이 사양은 Java 7과 8 (또는 9)간에 변경되지 않았으며 Object Versioning 장에서 언급 된 경우를 제외하고는 호환성을 보장합니다. 또한 모든 javax.swing 클래스에는 경고가 있습니다.

2

누가 다른 주요 버전을 구체적으로 지정하는 스펙의 정확한 부분을 지적 해 줄 수 있습니까? 아무 것도 없다면 어떤 부분에서 호환성을 추론 할 수 있습니까?

http://docs.oracle.com/javase/8/docs/platform/serialization/spec/protocol.html#a5849 https://docs.oracle.com/javase/8/docs/platform/serialization/spec/protocol.html https://docs.oracle.com/javase/7/docs/platform/serialization/spec/protocol.html

당신은 그 프로토콜 버전이 두 경우 모두 6입니다 볼 수 있습니다 :

자바 객체 직렬화 스펙 6.0