2017-04-25 93 views
1

我想排除领域,它看起来像:如何使用Dozer排除java中的字符串列表?

List<String> fieldNames = new ArrayList<>(); 
fieldNames.add("fieldA"); 
fieldNames.add("fieldB"); 

,我看到推土机上的网页,我可以以某种方式配置,如:

BeanMappingBuilder builder = new BeanMappingBuilder() { 
    protected void configure() { 
     mapping(AClass.class, BClass.class, 
       TypeMappingOptions.oneWay(), 
       mapNull(true) 
     ) 
     .exclude("fieldA") //here i would like to add exclude but the list 
    } 
}; 

但我不知道如何添加名单字符串的.exclude方法....任何人都可以帮助我吗?

非常感谢!

UPDATE

ClassA{ 
    private String fieldA, fieldB,fieldC; //so i would like to map just the fieldC 
} 
ClassB{ 
    private String fieldA, fieldB,fieldC; //so i would like to map just the fieldC 
} 

对于映射配置:

List<String> fieldNames = new ArrayList<>(); 
fieldNames.add("fieldA"); 
fieldNames.add("fieldB"); 

会有什么字段名称我想从mappnig排除。 所以当我映射,我不想List变量地图... 莫名其妙地去与...并排除它...

.exclude(list.foreach(listElement -> listElement.toString())) // or i dont know how can i do that 

回答

1

最后我做了这个sollution。

DozerBeanMapper mapper = new DozerBeanMapper(); 
List<String> excludeList = new ArrayList<>(); 
excludeList.add("fieldA"); 
BeanMappingBuilder builder = new BeanMappingBuilder() { 
      protected void configure() { 
       TypeMappingBuilder typeMappingBuilder = mapping(ClassA.class, ClassB.class); 
       excludeList.forEach(typeMappingBuilder::exclude); 
     }; 
mapper.addMapping(builder); 
相关问题