未知类的java.io.NotSerializableException



我正在努力使我的类可序列化。我所有的类都是,但对于其他一些我找不到它用法的类(例如com.sun.java.swing.plaf.windows.XPStyle,WClipboard),它仍然会抛出NotSerializableException。

在序列化或使这些类可序列化时,我可以做什么以及如何绕过这些类?

已解决

问题出现在我在JFrame和JDialog中使用的LookAndFeel中(XPStyle的问题)。第二个(WClipboard),它被我从这里得到的第三方课堂使用。此类使用剪贴板。

我创建了剪贴板字段transient和LookAndFeel,我无法管理,只是通过删除它。

如果您不希望数据被序列化以进行持久性或传输,那么您可以声明那些transient

但是,如果您需要持久化这些对象(类)中的数据,并通过TCP/UDP等进行传输,那么您可能希望extend该类,并实现自己对它的解释,这样您就可以声明扩展类Serializable


最后一种选择可能是使用不同的Serialization方法,例如FSTKryo等提供的方法。这些序列化库通常可以使用Reflection来序列化对象,而默认Java实现无法使用这些方法。

最新更新