【问题标题】:Swing components and serializationSwing 组件和序列化
【发布时间】:2009-10-08 19:26:41
【问题描述】:

为什么SwingJComponent类实现了接口Serializable?我实现视图的方式是无状态的,所有状态数据都存储在 Presentation Model 中。所以我不需要序列化我的观点。我使用了@SuppressWarnings("serial") 注释来删除警告。有没有更好的方法来移除它们?

【问题讨论】:

  • 方式 Java API 的太多部分实现了可序列化。就个人而言,除非我实际上是在编写使用序列化的代码,否则我只会在我的构建/IDE 中关闭序列化警告。

标签: java swing


【解决方案1】:

一开始,GUI 构建器会以序列化格式保存 UI。 applet 标记甚至有一个从序列化表单加载的属性(我不知道有其他人使用过它,我只是将它用作恶意)。不幸的是,使用 GUI 的序列化机制并没有真正起作用。 Swing 只保证在同一个主要版本中的兼容性(我猜即使那也很少测试)。

【讨论】:

    【解决方案2】:

    Swing JComponent 类为什么要实现 Serializable 接口?

    虽然这允许您序列化类并将它们发送到客户端和服务器,但这似乎不是一个直观的场景。有人可能想要将组件序列化到文件中的可能性仍然很小,但可能性更大。这将允许这种序列化。

    有没有更好的方法来消除[警告]?

    您可以实例化 serialVersionUID,但如果您这样做,则需要在类更改时对其进行维护。这似乎有点矫枉过正。正如 Laurence Gonsalves 在他的评论中指出的那样,另一种选择是在 Preferences->Java->Compiler->Errors/Warnings->Potential Programming Problems 字段中完全抑制警告。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-19
      • 1970-01-01
      • 2015-03-31
      • 1970-01-01
      • 2010-09-09
      相关资源
      最近更新 更多