3

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

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

解决了

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

我制作了剪贴板字段transient和 LookAndFeel,我无法管理,只需将其删除即可。

4

1 回答 1

1

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

但是,如果您需要将这些对象(类)中的数据持久化,通过 TCP / UDP 等传输,而不是您可能想要extend的类,并实现您自己的解释,这样您就可以声明您的扩展类Serializable.


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

于 2015-06-28T23:58:59.300 回答