Comment utiliser une carte explicite avec Java 8 et ModelMapper?
J'apprends à utiliser ModelMapper par la documentation officielle http://modelmapper.org/getting-started/
Il existe un exemple de code pour le mappage explicite en utilisant java 8
modelMapper.addMappings(mapper -> {
mapper.map(src -> src.getBillingAddress().getStreet(),
Destination::setBillingStreet);
mapper.map(src -> src.getBillingAddress().getCity(),
Destination::setBillingCity);
});
Comment utiliser ce code correctement? Lorsque je tape cet extrait de code dans ID, ID m'affiche le message 'impossible de résoudre la carte de méthode'
3
1 answers
Je pense que l'exemple appelle modelMapper
ce qui est en fait un TypeMap. Cela fonctionne:
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);
});
Une autre façon sans lambdas serait de simplement donner au ModelMapper.addMappings()
un PropertyMap. Pas un lambda mais assez court:
ModelMapper modelMapper = new ModelMapper();
modelMapper.addMappings(new PropertyMap<Order, OrderDTO>() {
@Override
protected void configure() {
map().setBillingStreet(source.getBillingAddress().getStreet());
map().setBillingCity(source.getBillingAddress().getCity());
}
});
4
Author: Bentaye, 2018-02-27 11:32:08