Lambda的ModelMapper Java 8映射

时间:2019-01-30 08:58:24

标签: java modelmapper

我对带有Java8的ModelMapper的Getting started示例有疑问。他们表明,使用他们的库可以定义mappig,例如

ModelMapper modelMapper = new ModelMapper();

modelMapper.addMappings(mapper -> {
    mapper.map(src -> src.getBillingAddress().getStreet(), Destination::setBillingStreet);
    mapper.map(src -> src.getBillingAddress().getCity(), Destination::setBillingCity);
});

由于ModelMapper不是通用的,因此什么显然不起作用,而更多的则不起作用(因此您无法推断srcdst类型)

public class ModelMapper {
    ...
}

此外,map()方法不接受功能性接口,但接受PropertyMap对象

public abstract class PropertyMap<S, D> {
    ...
}

我已经检查了ModelMapper Github页,以查看示例,但是似乎它们在各处都使用J​​ava6 / 7方法... :)为什么在入门如果它不起作用并且没有机会工作?

您曾经调查过吗?我在做什么错了?

我使用ModelMapper 2.3.0


编辑

应该是

ModelMapper modelMapper = new ModelMapper();
modelMapper.createTypeMap(Order.class, OrderDTO.class)
   .addMappings(mapper -> {
       mapper.map(src -> src.getBillingAddress().getStreet(), OrderDTO::setBillingStreet);
       mapper.map(src -> src.getBillingAddress().getCity(), OrderDTO::setBillingCity);
});

似乎在官方教程中,他们将modelMapper TypeMap实例命名为ModelMapper:)

0 个答案:

没有答案