我正在使用 socketserver 通过ObjectOutputStream
. 它适用于任何标准 Java 对象,但我无法发送我的自定义对象。我明白了
java.io.NotSerializableException:MyObject。
我对序列化一无所知,但我做到了,Eclipse 告诉我。还尝试在任何地方删除它,没有任何帮助。我的对象是从其他自定义抽象类继承的,尚未对其他自定义对象进行测试。
我正在使用 socketserver 通过ObjectOutputStream
. 它适用于任何标准 Java 对象,但我无法发送我的自定义对象。我明白了
java.io.NotSerializableException:MyObject。
我对序列化一无所知,但我做到了,Eclipse 告诉我。还尝试在任何地方删除它,没有任何帮助。我的对象是从其他自定义抽象类继承的,尚未对其他自定义对象进行测试。
您的对象必须实现Serializable
. 您的“自定义”抽象类也必须是可序列化的。如果您无法更改抽象类(即它不受您的控制),则适用以下情况:
为了允许序列化不可序列化类的子类型,子类型可以负责保存和恢复超类型的公共、受保护和(如果可访问)包字段的状态。仅当它扩展的类具有可访问的无参数构造函数来初始化类的状态时,子类型才可以承担此责任。如果不是这种情况,则声明类 Serializable 是错误的。将在运行时检测到错误。
关于你的句子:
我对序列化一无所知
那我建议你去研究一下……从阅读开始:
Serializable
JavadocObjectOutputSteam
Javadoc