当前位置:  开发笔记 > 编程语言 > 正文

是否在同一源文件中使用来自不同JDK版本的编译器中断(反)序列化?

如何解决《是否在同一源文件中使用来自不同JDK版本的编译器中断(反)序列化?》经验,为你挑选了1个好方法。

我有一个分布式应用程序.客户端和服务器共享一些公共库.客户端必须使用JDK 5编译器或target = 1.5进行编译(在PowerPC和CoreDuo Mac上也可以在任何地方运行).但我想在仅服务器代码中使用SE 6功能.

是否可以编译公共库两次 - 一次使用JDK 5,一次使用JDK 6,并使用JDK 5编译的类文件在客户端序列化对象,并在服务器端使用JDK 6编译的类文件对它们进行反序列化反之亦然?或者会打破序列化?

构建应该使用不同JDK版本编译的代码运行的库的最佳实践是什么?



1> Michael Myer..:

如果明确定义了serialVersionUID,则应该可以在不同的JVM版本中进行序列化和反序列化.这就是定义它的重点; 看规格:

- 强烈建议所有可序列化类显式声明serialVersionUID值,因为默认serialVersionUID计算对类详细信息高度敏感,这些详细信息可能因编译器实现而异,因此可能在serialVersionUID反序列化期间导致意外冲突,从而导致反序列化失败.

推荐阅读
jerry613
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有