加载使用标准Java Serialization API序列化的类的最简单方法是什么?
.class
格式与Class<?>
实例的序列化形式之间是否有任何微不足道的关系?
答案 0 :(得分:1)
如果您询问是否可以序列化Class<?>
对象,然后将该序列化文件用作.class
文件加载到ClassLoader中,则答案为否。
对象序列化意味着您将对象状态保存为字节序列。这与字节码不同。
答案 1 :(得分:1)
.class格式和.class格式之间是否有任何微不足道的关系 Class实例的序列化形式?
编译时的Serializable类获取一个名为serialVersionUID(SUID)的标识符。使用此版本的类序列化的每个对象也都标有此SUID。
加载已使用序列化的类的最简单方法是什么 标准的Java Serialization API?
取决于您要实现的目标,* .class文件,如您所知,由一系列字节中的字节代码组成。对象不复制字节代码,因此您无法从序列化对象恢复其类的字节序列。但是您将serialVersionUID作为序列化对象中的最终长变量。使用此信息,您可以匹配* .class的相应版本。
但这说起来有所作为,在实际实现这种“自适应”加载时,你会遇到许多有趣的东西。
答案 2 :(得分:0)
您需要做什么才能读取类文件并转换为byte []并将它们写入文件。
然后在deserlalizing时,你需要从文件加载byte []并默认定义类系统类加载器或自定义类加载器取决于你的需要。