我正在努力使我的类可序列化。我所有的类都是,但对于其他一些我找不到它用法的类(例如com.sun.java.swing.plaf.windows.XPStyle,WClipboard),它仍然会抛出NotSerializableException。
在序列化或使这些类可序列化时,我可以做什么以及如何绕过这些类?
已解决
问题出现在我在JFrame和JDialog中使用的LookAndFeel中(XPStyle
的问题)。第二个(WClipboard
),它被我从这里得到的第三方课堂使用。此类使用剪贴板。
我创建了剪贴板字段transient
和LookAndFeel,我无法管理,只是通过删除它。
如果您不希望数据被序列化以进行持久性或传输,那么您可以声明那些transient
但是,如果您需要持久化这些对象(类)中的数据,并通过TCP/UDP等进行传输,那么您可能希望extend
该类,并实现自己对它的解释,这样您就可以声明扩展类Serializable
。
最后一种选择可能是使用不同的Serialization
方法,例如FST、Kryo等提供的方法。这些序列化库通常可以使用Reflection
来序列化对象,而默认Java实现无法使用这些方法。