我有两个类需要映射(目前一种方式)。
class Order1 {
int number;
String status;
}
class Order2 {
int number;
boolean canceled;
boolean confirmed;
}
我想做类似的事情:
mapperFactory.classMap(Order1.class, Order2.class)
.map("status == 'Canceled'", "canceled")
.map("status == 'Confirmed'", "confirmed")
.byDefault().register();
有没有办法做这样的事情?
编辑:我尝试使用这样的 CustomMapper:
.customize(new CustomMapper<Order1, Order1>() {
@Override
public void mapAtoB(final Order1 a, final Order1 b, final MappingContext context) {
String status = a.getStatus();
b.setCanceled("Canceled".equals(status));
b.setConfirmed("Confirmed".equals(status));
}
})
这可行,但似乎不可能为同一对类添加许多自定义映射器。相反,正如 Sidi 的回答所解释的那样,我使用了自定义转换器。
谢谢。