2017-04-25 88 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); 
相關問題