这是我的问题:我一直在开发一个复杂的产品(100k 多行代码),它本质上将最多 8 个不同的类附加到 JTree
结构,并将整个实体序列化到磁盘。我在我自己的每个类中设置 SUID 以方便版本管理,这一切都工作正常。我一直通过 textPad 开发工具在 JDK1.7 中进行所有测试。到目前为止一切顺利。
我使用 JRE(1.7)
启动了我的应用程序(上周第一次),但它因反序列化版本错误而失败。该错误来自 JTree 的反序列化,而不是我的类。
这引发了两个问题:
- 为什么像 JTree 这样的核心数据结构在同一 JAVA 版本中不能普遍反序列化? 1.7 版本中 JRE Swing 和 JDK Swing 之间肯定没有版本变化吗?
- 我可以在
JTree
(或其他)Swing 组件中设置 SUID 吗?
有人能看到解决方案吗?
最佳答案
来自 J2SE documentation :“警告:此类的序列化对象将与 future 的 Swing 版本不兼容。当前的序列化支持适用于运行相同版本 Swing 的应用程序之间的短期存储或 RMI。从 1.4 开始,对所有 JavaBeansTM 的长期存储的支持已添加到 java.beans 包中。请参阅 XMLEncoder。”
关于java - 在 JTree 上设置 SUID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13709230/