Swing组件和序列化

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

在开始时,GUI构建器将以序列化格式保存UI。 applet标签甚至有一个从序列化forms加载的属性(我不知道有谁使用过它,我只是用它来做恶意的)。 不幸的是,使用GUI的序列化机制并不真正起作用。 Swing只保证在同一个主要版本中的兼容性(我猜测甚至几乎没有测试)。

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

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

是否有更好的方法来删除[警告]?

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