1

这是我的问题:我一直在研究一个复杂的产品(100k+ 行代码),它本质上将多达 8 个不同的类附加到一个JTree结构并将整个实体序列化到磁盘。我在我自己的每个类中设置 SUID 以促进版本管理,这一切都很好。我一直在JDK1.7 通过 textPad 开发工具进行所有测试。到目前为止,一切都很好。

JRE(1.7)我使用(上周第一次)启动了我的应用程序,它因反序列化版本错误而崩溃。该错误来自 JTree 的反序列化,而不是我的类。

这引发了两个问题:

  1. JTree为什么在同一个 JAVA 版本中不能普遍反序列化的核心数据结构?在 1.7 版本中,JRE Swing 和 JDK Swing 之间肯定没有版本变化吗?
  2. 我可以在JTree(或其他)Swing 组件中设置 SUID 吗?

请问有人可以看到解决方案吗?

4

1 回答 1

1

来自J2SE 文档:“警告:此类的序列化对象将与未来的 Swing 版本不兼容。当前的序列化支持适用于运行相同版本 Swing 的应用程序之间的短期存储或 RMI。从 1.4 开始,支持长期所有 JavaBeansTM 的术语存储已添加到 java.beans 包中。请参阅 XMLEncoder。

于 2012-12-04T18:49:35.070 回答