java - 在 JTree 上设置 SUID?

标签 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 吗?

有人能看到解决方案吗?

最佳答案

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

关于java - 在 JTree 上设置 SUID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13709230/

相关文章:

java - JTree 和 TreeModel 具有不同类的层次结构?

java - Kryonet——我如何在我的类(class)内注册类(class)?

java - 如何抑制 'common-java' 规则的警告

java - 如何在java中使用aspose word将FieldFormula添加到Cell中

java - 使用paintComponent()和高CPU使用率

java - 为什么 TreePath 是由 Object[] 而不是 TreeNode[] 构造的?

java - 为什么我得到 "incompatible types: Object cannot be converted to String"?

java - 为我的应用程序中的每个 java swing 组件创建自定义类

java - Swing GUI - 创建一个 'Settings' 窗口(正确)

java - 同步多个 JTree 对象中的选定节点