在JTree上设置SUID?

时间:2012-12-04 18:12:04

标签: java swing jtree

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

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

这提出了两个问题:

  1. 为什么核心数据结构如JTree在同一个JAVA版本中不能普遍解除可分解性?当然,在1.7版本中,JRE Swing和JDK Swing之间没有版本更改?
  2. 我可以在JTree(或其他)Swing组件中设置SUID吗?
  3. 有人能看到解决方案吗?

1 个答案:

答案 0 :(得分:1)

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