gpt4 book ai didi

java - Java中没有arg构造函数和反序列化

转载 作者:行者123 更新时间:2023-12-01 14:27:45 28 4
gpt4 key购买 nike

DeSerialization 使用 Serializable 接口(interface)机制使用 Reflection 将 Object 字节反序列化 为 Object。但是默认的 no arg constructor 在此过程中不会被调用,因此不需要。但是像 Spring、Hibernate 等所有框架都不需要 no arg constructor 即使它们使用反射。这不是自相矛盾还是我遗漏了什么?

最佳答案

内置标准反序列化不使用标准反射来创建实例。

标准反射不能在不调用构造函数(不一定是无参数构造函数)的情况下创建实例。因此,任何仅使用标准反射的框架都需要调用构造函数来创建实例。

要在不调用构造函数的情况下创建实例,您需要某种特定于 jvm 供应商的扩展,例如 Unsafe。使用这些扩展取决于框架开发人员,许多人决定反对。 (XStream https://x-stream.github.io/faq.html 是我所知道的唯一实际使用它的)

关于java - Java中没有arg构造函数和反序列化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61372884/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com