我使用不可序列化的对象(如ArrayList等)创建了一个类...此类实现了Serializable,但当我尝试使用ObjectOutputStream的writeObject方法将类实例写入文件时,我得到一个IOException。 /> 如何避免这个问题? writeObject方法是最终的,所以我不能覆盖它,我是否必须手动保存(读取所有ArrayList并保存每个元素一个)对象,或者有机会管理writeObject方法工作?
PS:我认为没有必要包括因为它对问题没有意义,但是如果你认为有必要发布代码(其中还包含其他用户定义的类,所以很难理解),请让我知道。答案 0 :(得分:3)
您无需覆盖或'提供实现of
writeObject()`。
ArrayList
可序列化。
您需要阅读所获得的实际错误消息。它不只是'IOException',它包含信息。几乎可以肯定,它告诉你其他一些类不可序列化。这就是你要解决的问题。这样做通常也不涉及writeObject()
方法。
答案 1 :(得分:0)
writeObject是final,但它也是私有的。你不应该覆盖它。你应该提供一个实现(也是私有的)。这很奇怪,但事实就是这样。