这是我的问题:我一直在研究复杂的产品(100k +代码行),它基本上将8个不同的类附加到JTree
结构,并将整个实体序列化到磁盘。我在我自己的每个类中设置SUID以便于版本管理,这一切都很好。我一直在使用textPad开发工具在JDK1.7
进行所有测试。到目前为止一切都很好。
我使用JRE(1.7)
启动了我的应用程序(上周第一次),但是它反复出现了反序列化版本错误。错误来自JTree的反序列化,而不是我的类。
这提出了两个问题:
JTree
在同一个JAVA版本中不能普遍解除可分解性?当然,在1.7版本中,JRE Swing和JDK Swing之间没有版本更改?JTree
(或其他)Swing组件中设置SUID吗?有人能看到解决方案吗?
答案 0 :(得分:1)
来自J2SE documentation:“警告:此类的序列化对象与以后的Swing版本不兼容。当前的序列化支持适用于运行相同版本Swing的应用程序之间的短期存储或RMI。 1.4版本,java.beans包中添加了对所有JavaBeansTM的长期存储的支持。请参阅XMLEncoder。“