对象输出流不会写自定义对象

时间:2012-06-10 02:50:32

标签: java serialization

我正在使用socketserver通过ObjectOutputStream发送一些数据。它适用于任何标准Java对象,但我无法发送自定义对象。我得到了

  

java.io.NotSerializableException:MyObject。

我对序列化一无所知,但我做到了,Eclipse告诉了这一点。也尝试到处删除它,没有任何帮助。我的对象是继承自其他自定义抽象类,但尚未将其测试到其他自定义对象。

1 个答案:

答案 0 :(得分:8)

您的对象必须实现Serializable。您的“自定义”抽象类也必须是可序列化的。如果您无法更改抽象类(即,它不在您的控制之下),则以下情况适用:

  

为了允许序列化非可序列化类的子类型,子类型可能负责保存和恢复超类型的public,protected和(如果可访问)包字段的状态。只有当它扩展的类具有可访问的no-arg构造函数来初始化类的状态时,子类型才可以承担此责任。如果不是这种情况,则声明类Serializable是错误的。将在运行时检测到错误。

关于你的句子:

  

我对序列化一无所知

然后我建议你去做一些研究......从阅读开始: