[英]Don't Map null entries from one list to another in Dozer
假设我具有以下类结构?
class A{
List<B> listB;
//getter and setter
}
class B{
String s;
//getter and setter
}
//objectOfA has listB = [null,objectOfB,null]
A a2 = dozermapper.map(objectOfA,A.class);
我希望a2仅包含listB = [objectOfB]。 列表的null元素。
如何在推土机中做到这一点?
您可以编写一个简单的转换器,像这样(使用新的转换器api,也可以使用旧的转换器):
public class Converter extends DozerConverter<List<B>, List<B>> {
public Converter() {
super(List.class, List.class);
}
public List<B> convertTo(List<B> source, List<B> destination) {
List<B> result = new ArrayList<B>();
for (B item : source) {
if (item != null) {
result.add(item); //or item copy, or whatever you want
}
}
return result;
}
}
然后将其附加到您的映射中,如下所示:
<mapping>
<class-a>yourpackage.A</class-a>
<class-b>yourpackage.A</class-b>
<field custom-converter="yourpackage.Converter">
<a>listB</a>
<b>listB</b>
</field>
</mapping>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.