java - 是否可以在 java 中使用反射创建没有无参数构造函数的类的 'blank' 实例?

标签 java reflection serialization constructor default-constructor

我有一个没有默认构造函数的类。我需要一种方法来获取此类的“空白”实例。 “空白”表示实例化后所有类字段都应具有默认值 比如 null、0 等。

我问是因为我需要能够序列化/反序列化大树对象。而且我无法访问这些对象类的来源,并且类既没有默认构造函数也没有实现可序列化。尝试序列化这种结构可能不是一个好主意,但另一种方法是将其转换为更容易序列化的东西。

最佳答案

使用标准反射,没有,但是有一个库可以为您做到这一点:objenesis .

它专门设计用于实例化没有默认构造函数的类,它被其他序列化库使用,如 xstream .

注意:在这些情况下可能不会调用构造函数(但这可能是您想要的)。

关于java - 是否可以在 java 中使用反射创建没有无参数构造函数的类的 'blank' 实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4133709/

相关文章:

Java 反射 : Create an implementing class

c# - 从动态类型创建泛型类的实例

json - Delphi: super 对象序列化自定义转换器/逆变器

php - 使用上下文的 "circular_reference_handler"键代替 symfony 4.2

java - 如何在android中使用RSA进行加密和解密

java - 调用 RedisOperationsSessionRepository.delete 时出现 NoSuchMethodError

java - 如何识别音频文件的AudioEncoding和SampleRateHertz

go - panic : reflect: call of reflect. Value.FieldByName 接口(interface)值

java - Text.getBytes() 返回意外结果

java - 使用 @Resource 基于 CDI 构造函数的注入(inject)