在我的@Mapper
类中,我有以下方法:
@Mapping(source = "localCar.color", target = "color")
@Mapping(source = "blueBookCar.price", target = "price")
@Mapping(source = "localCar.features", target = "features", qualifiedByName = "mapFeatures")
abstract CarDto from(LocalCar localCar, BlueBookCar blueBookCar);
@Named("mapFeatures")
Map<Long, Feature> mapFeatures(Map<Group, Feature> features, BlueBookCar blueBookCar) {
// do stuff with both blueBookCar and features from localCar
}
但是,我得到了一个编译错误,指出没有找到map struct方法mapFeatures(Map)
.
从this post开始,我try 将@Context
blueBookCar
用于这两种方法,但随后得到了一个错误,即它可用于在from
方法中进行映射.
我能找到的唯一解决方案是传入blueBookCar
两次,一次用@Context
注释,一次不带注释:
@Mapping(source = "localCar.color", target = "color")
@Mapping(source = "blueBookCar.price", target = "price")
@Mapping(source = "localCar.features", target = "features", qualifiedByName = "mapFeatures")
abstract CarDto from(LocalCar localCar, BlueBookCar blueBookCar, @Context BlueBookCar blueBookCar2)
@Named("mapFeatures")
Map<Long, Feature> mapFeatures(Map<Group, Feature> features, @Context BlueBookCar blueBookCar2) {
//do stuff with both blueBookCar and features from localCar
}
如何在@Mapping
和@Named
方法中使用参数进行映射?