java - 序列化问题

标签 java serialization

如何通过网络传递不可序列化的对象?

最佳答案

如果存在对象不可序列化的严重原因,则不能通过网络传递它。例如,如果您的类包含无法序列化的成员(流、线程等)

但是如果该类不可序列化的原因是它的作者没有这样标记它并且您无权访问类的源代码以使其可序列化,您可以采用以下方法。

  1. 使用字节码工程库动态修改类字节码:将其标记为implements Serializable,然后通过网络发送。
  2. 编写您自己的序列化机制。它可以完全自定义创建或使用第三方库。如果您自己实现这种机制,您可以使用反射 API。 XStream 是非常好的第三方库之一。据我所知,它不需要将该类标记为可序列化。它只是创建包含整个对象图的 XML。也可以使用 java.io.Externalizable 实现自定义机制
  3. 对给定的类进行子类化。将子类标记为可序列化。实现您自己的 writeObject() 和 readObject() 方法。

关于java - 序列化问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4921805/

相关文章:

java - id 的正确 Java 命名约定是什么?

php - JavaScript/PHP cookie 序列化方法?

c# - 我可以访问未序列化的内部类吗

java - 在后台发送电子邮件

Java Scanner/Input Help(输入不匹配异常)

java - mysql - 一种检查查询是否更新/删除/创建或选择的方法

java - 重命名 hibernate envers id 和 timestamp 列

java - Jackson Serializer 使用泛型注册 SimpleModule

java - 我想写入和读取文件,当我运行 : java. io.EOFException 时出现此错误

java - 为图像编辑器快速、可靠地保存/加载文档状态