在Java中是否可以使用反射创建没有no-arg构造函数的类的“空白”实例?
我有一个没有默认构造函数的类。我需要一种获取此类的“空白”实例的方法。“空白”表示实例化之后,所有类字段均应具有默认值,例如null,0等。
我问是因为我需要能够序列化/理想化大对象树。而且我无法访问此对象类的源,并且类既没有默认构造函数,也没有实现可序列化的类。尝试序列化这种结构可能不是一个很好的主意,但替代方法是将其转换为更易于序列化的内容。
回答:
使用标准反射时,不需要,但是有一个库可以为您做到这一点:objenesis。
它是专门为不使用默认构造函数实例化类而设计的,并且由xstream等其他序列化库使用。
注意:在这些情况下,可能不会调用构造函数(但这大概就是您想要的)。
以上是 在Java中是否可以使用反射创建没有no-arg构造函数的类的“空白”实例? 的全部内容, 来源链接: utcz.com/qa/414461.html