我对带有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
不是通用的,因此什么显然不起作用,而更多的则不起作用(因此您无法推断src
和dst
类型)
public class ModelMapper {
...
}
此外,map()
方法不接受功能性接口,但接受PropertyMap
对象
public abstract class PropertyMap<S, D> {
...
}
我已经检查了ModelMapper Github页,以查看示例,但是似乎它们在各处都使用Java6 / 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:)