3

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

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

4

2 回答 2

3
  1. 您不需要覆盖“提供实现ofwriteObject()”。

  2. ArrayList 根据上面的评论,是可序列化的。

  3. 您需要阅读您收到的实际错误消息。它不仅仅是“一个 IOException”,它还包含信息。几乎可以肯定它告诉您其他一些类是不可序列化的。所以这就是你必须解决的问题。这样做通常也不涉及writeObject()方法。

于 2012-04-23T01:40:53.417 回答
0

writeObject 是最终的,但它也是私有的。你不应该覆盖它。您应该只提供一个实现(也是私有的)。这很奇怪,但事实就是如此。

于 2012-04-22T23:33:52.570 回答