作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个类似于以下两个类的场景:
public class Person {
private String name;
private Set<Person> familyMembers;
//constructors & getters and setters
}
Person
类是我的源类。我正在尝试使用 Dover 将此类映射到以下目标类:
public class PersonPrime {
private String personName;
private FamilyMembers familyMembers;
//constructors & getters and setters
}
public class FamilyMembers {
private List<PersonPrime> familyMembers;
//constructors & getters and setters
}
我的实际场景中的目标类是由 JAXB 生成的(使用我创建的 XSD)。 XSD 是规定的,我无法真正更改它们,因此无法更改目标类。目前,我可以在映射 XML 文件中映射基元,但无法映射集合。
知道如何使用 Dozer 将 Person
的对象映射到 PersonPrime
类型的对象吗?
最佳答案
默认情况下,JaxB 不会为“FamilyMembers”类型中的集合生成 setter。当 Dozer 尝试调用不存在的 setter 时,这将导致 Dozer 内部深处出现空指针异常(Dozer 5.4.0 中的 org.dozer.util.ReflectionUtils.java:323)。为了避免这种情况,您需要在集合字段上设置 is-accessible true ,这将导致它直接设置 familyMembers.familyMembers 字段。因此,以下修改后的映射应该起作用:
<mapping>
<class-a>Person</class-a>
<class-b>PersonPrime</class-b>
<field>
<a>name</a>
<b>personName</b>
</field>
<field>
<a>familyMembers</a>
<b is-accessible="true">familyMembers.familyMembers</b>
</field>
</mapping>
关于java - 推土机 - 测绘集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23215406/
我正在尝试映射!!到一个列表,即有一个位置列表和一个我试图返回这些位置中的元素的列表,到目前为止我有: map $ flip listOfThings!!listOfPositions 我认为这是错误
我是一名优秀的程序员,十分优秀!