【发布时间】:2019-05-07 01:15:08
【问题描述】:
我的映射器的映射器装饰器没有被编译。映射器正在编译,但不是装饰器。因为,在构建过程中,我遇到了类型转换错误,即使我是在映射器装饰器中进行的。还有什么要补充的吗?
映射器代码:
@Mapper
@DecoratedWith(OneMapperDecorator.class)
public interface OneMapper {
public TwoObject convertToTwoObject(OneObject one);
}
装饰器代码:
public abstract class OneMapperDecorator implements OneMapper {
private final OneMapper delegate;
public OneMapperDecorator (OneMapper delegate) {
this.delegate = delegate;
}
@Override
public TwoObject convertToTwoObject(OneObject one)
{
TwoObject two=delegate.convertToTwoObject(one);
two.setTotalFare(new BigDecimal(one.getPrice()));//string to bigdecimal conversion
return two;
}
}
【问题讨论】:
-
还有什么要补充的,你得到的实际异常可能会有所帮助
-
无法将属性“java.lang.String price”映射到“java.math.BigDecimal fare”。考虑声明/实现一个映射方法:“java.math.BigDecimal map(java.lang.String value)”。这是@Eugene 的错误
-
嗯,这和你说的有点不同:我的映射器的映射器装饰器没有被编译?你明白现在完全不同了吗?
-
我在装饰器@Eugene中实现了类型转换方法...那为什么会报错??
标签: spring-mvc java-8 mapstruct