我使用ModelMapper,通常我对默认的默认设置(不需要额外的配置)感到满意。但是这次我有一个巨大的bean,它具有很多o Double属性。但是,有很多属性需要我否定,但不是全部。因此,我尝试使用此PropertesMap,但
private static class NegationMap extends PropertyMap<KpiTimeSeriesSource, KpiTimeSeriesEntity>{
@Override
protected void configure() {
if (source.getKpiHw1() != null) map().setKpiHw1(source.getKpiHw1());
// a few more here
}
}
public KpiTimeSeriesMapper() {
modelMapper.addMappings(new NegationMap());
}
但这似乎不起作用:
原因:java.lang.IllegalArgumentException:对象不是声明类的实例
我也尝试过类似的方法,但是该值根本没有被忽略:
TypeMap<KpiTimeSeriesSource, KpiTimeSeriesEntity> typeMap = modelMapper.createTypeMap(KpiTimeSeriesSource.class, KpiTimeSeriesEntity.class);
typeMap.addMapping(src -> src.getKpiHw1() * -1, KpiTimeSeriesEntity::setKpiHw1);
编辑:
奇怪的是,如果我在NegationMap
中省略了空检查,但是错误没有消失,那么错误就消失了。