2

我正在使用 socketserver 通过ObjectOutputStream. 它适用于任何标准 Java 对象,但我无法发送我的自定义对象。我明白了

java.io.NotSerializableException:MyObject。

我对序列化一无所知,但我做到了,Eclipse 告诉我。还尝试在任何地方删除它,没有任何帮助。我的对象是从其他自定义抽象类继承的,尚未对其他自定义对象进行测试。

4

1 回答 1

8

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

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

关于你的句子:

我对序列化一无所知

那我建议你去研究一下……从阅读开始:

于 2012-06-10T02:53:48.450 回答