使用非可序列化对象将类保存到文件

时间:2012-04-22 22:58:10

标签: java serializable

我使用不可序列化的对象(如ArrayList等)创建了一个类...此类实现了Serializable,但当我尝试使用ObjectOutputStream的writeObject方法将类实例写入文件时,我得到一个IOException。 /> 如何避免这个问题? writeObject方法是最终的,所以我不能覆盖它,我是否必须手动保存(读取所有ArrayList并保存每个元素一个)对象,或者有机会管理writeObject方法工作?

PS:我认为没有必要包括因为它对问题没有意义,但是如果你认为有必要发布代码(其中还包含其他用户定义的类,所以很难理解),请让我知道。

2 个答案:

答案 0 :(得分:3)

  1. 您无需覆盖'提供实现of writeObject()`。

  2. 根据上述评论,
  3. ArrayList 可序列化。

  4. 您需要阅读所获得的实际错误消息。它不只是'IOException',它包含信息。几乎可以肯定,它告诉你其他一些类不可序列化。这就是你要解决的问题。这样做通常也不涉及writeObject()方法。

答案 1 :(得分:0)

writeObject是final,但它也是私有的。你不应该覆盖它。你应该提供一个实现(也是私有的)。这很奇怪,但事实就是这样。