我有一个Car
的列表,我想将它们映射到其他特定的Car
,例如-FordCar
,HondaCar
,VolkswagenCar
...基于maker
的{{1}}属性的值,即Car
Dozer,MapStruct可以做到吗? 还是Java中有任何框架可以做到这一点?
答案 0 :(得分:0)
如果您没有任何其他要求,则只需使用Java-8即可。
Map<String, Supplier<Car>> creators = new HashMap(){{
put("honda", ()-> new HondaCar());
put("ford", ()-> new FordCar());
}}
listOfCars.map(Car::getMaker).map(maker -> creators.get(maker).get())
答案 1 :(得分:0)
经过长时间的寻找,得出结论-到目前为止,MapStruct不支持该结论。那就是Map <>条目的映射。
我做了一个回合-将Map <>映射到Map <>并使用JackSon属性@JsonAnyGetter
和@JsonAnySetter
答案 2 :(得分:-1)
Orika,重新映射,Selma,MapStruct。
要获取特定的映射,请在映射器中实现。