java - 加载序列化类

标签 java class serialization classloader

加载已使用标准 Java 序列化 API 序列化的类的最简单方法是什么?

.class之间是否存在任何微不足道的关系? Class<?> 的格式和序列化形式实例?

最佳答案

Is there any trivial relationship between the .class format and the serialized form of a Class instance?

编译时的可序列化类会获得一个名为serialVersionUID ( SUID ) 的标识符。使用此版本的类序列化的每个对象也会带有此 SUID 标记。

What is the easiest way to load a class that has been serialized using the standard Java Serialization API?

取决于您想要实现的目标,正如您所知,*.class 文件由一系列字节中的字节代码组成。对象不复制字节码,因此您无法从序列化对象中恢复其类的字节序列。但是您将serialVersionUID 作为序列化对象中的最终长变量。使用此信息,您可以匹配 *.class 的适当版本。

但是说的比做的多,在实际实现这种“自适应”加载时,您会遇到很多有趣的东西。

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

相关文章:

c# - 为值对象序列化自定义 NewtonSoft.Json

Python - 从串行端口读取并编码为 JSON

java - 避免在 Spring 中为 TImeline 功能创建重复项

java - 如何在 API 23 上以编程方式在 Android 上打开飞行模式

java - 使用构造函数创建帐户并登录

python - 在类中使用 execfile 获取参数时出现问题

java - 如何使用 OKHttp 发送一个空正文的 POST

java - 需要将一组浮点变量格式化为 00.00

class - 了解 Hadoop 包和类

php - 在 PHP 中反序列化以恢复为对象