我试图让我的类Serializable。我的所有类都是,但它仍然会引发NotSerializableException,因为我无法找到它的其他类(例如com.sun.java.swing.plaf.windows.XPStyle,WClipboard)。 / p>
我可以做什么,如何在序列化或使其可序列化时绕过这些类?
解决
问题出现在我在JFrames和JDialogs中使用的LookAndFeel中(XPStyle
的问题)。第二个(WClipboard
),它是由我从这里得到的第三方课程使用的。这个类使用剪贴板。
我制作了剪贴板字段transient
和LookAndFeel我无法管理,只需将其删除即可。
答案 0 :(得分:1)
如果您不希望序列化数据以进行持久性或转移,则可以声明transient
但是,如果您需要持久保存这些对象(类)中的数据,通过TCP / UDP等传输,而不是您想要extend
类,并实现自己对它的解释,那么然后,您可以声明扩展类Serializable
。
最后一个选项可能是使用Serialization
的其他方法,例如 FST , Kryo 等提供的方法。通常这些序列化库可以使用Reflection
来序列化默认Java实现不能的对象。