使用Modelmapper,如何映射到没有默认/无参数构造函数的类?

拉尔斯·罗森奎斯特(Lars Rosenqvist)

我想映射到仅具有3个参数的构造函数的源目标。我收到以下错误:

无法实例化目标com.novasol.bookingflow.api.entities.order.Rate的实例。确保com.novasol.bookingflow.api.entities.order.Rate具有非私有的无参数构造函数。

当我在源目标中插入一个无参数的构造函数时,它可以工作,但是那会导致该类的滥用,所以我宁愿不要这样做。

我试过使用Converter,但这似乎不起作用:

Converter<RateDTO, Rate> rateConverter = new AbstractConverter<RateDTO, Rate>() {
    protected Rate convert(RateDTO source) {
        CurrencyAndAmount price = new CurrencyAndAmount(source.getPrice().getCurrencyCode(), source.getPrice().getAmount());
        Rate rate = new Rate(price, source.getPaymentDate(), source.getPaymentId());
        return rate;
    }
};

是否可以告诉modelmapper如何使用无参数的构造函数映射到目标?

拉尔斯·罗森奎斯特(Lars Rosenqvist)

这似乎可以解决问题:

    TypeMap<RateDTO, Rate> rateDTORateTypeMap = modelMapper.getTypeMap(RateDTO.class, Rate.class);
    if(rateDTORateTypeMap == null) {
        rateDTORateTypeMap = modelMapper.createTypeMap(RateDTO.class, Rate.class);
    }
    rateDTORateTypeMap.setProvider(request -> {
        RateDTO source = RateDTO.class.cast(request.getSource());
        CurrencyAndAmount price = new CurrencyAndAmount(source.getPrice().getCurrencyCode(), source.getPrice().getAmount());
        return new Rate(price, source.getPaymentDate(), source.getPaymentId());
    });

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

推土机:没有默认构造函数的类映射

使用NInject在WPF中注入没有无参数构造函数的viewmodel类

当结合使用具有自动值的JAXB时,出现Marsheling错误“没有无参数的默认构造函数”

....没有定义无参数构造函数?

当父类在 C++ 中没有默认构造函数时,如何在继承的类中使用构造函数?

如何将javascript类构造函数参数动态映射到实例属性

在自动映射器中没有为此对象定义无参数构造函数

没有反序列化的相应值时,如何使用构造函数的默认参数值?

没有默认构造函数的 Java 类

没有默认构造函数的类的向量

如何检查没有参数的类的构造函数

使用移动构造函数时,构造函数中没有默认参数

为什么String类没有无参数的构造函数?

在没有无参数构造函数的情况下序列化ISerializable类

Scala类的最终def this()声明没有公共的无参数构造函数

自动存储中没有无参数构造函数的类的对象和异常

ASP.net Linq查询InvalidOperationException:类“没有无参数的构造函数

类在控制器中没有无参数构造函数异常

注入没有无参数构造函数的第三方类

Gson是否必须使用默认的无参数构造函数?

如何调用由ctor提供的所有默认参数的类的默认构造函数?

如何在构造函数中使用AutoMapper映射到“ this”

MVC:此对象没有无参数构造函数

没有无参数构造函数的泛型

如何在dart中使用抽象类执行继承?错误:超类SpanishData没有零参数构造函数

如何在没有默认构造函数的情况下实现抽象类的Decorator类?

如何使用第二个构造函数实例化具有无参数构造函数和具有可选参数的第二个构造函数的类?

如何在Haskell中使用Monad类的多个构造函数参数上映射函数?

Kotlin 中的 Dagger 2:有没有办法在不使用 Module 的情况下使用默认参数化构造函数对类进行注入?