我有一个具有以下属性的Product
类:name
,dateCreated
,createdByUser
,dateModified
和modifiedByUser
,并且我正在使用JAXB编组。我想要这样的输出:
<product>
<name>...</name>
<auditInfo>
<dateCreated>...</dateCreated>
<createdByUser>...</createdByUser>
<dateModified>...</dateModified>
<modifiedByUser>...</modifiedByUser>
</auditInfo>
</product>
但理想情况下,我希望避免围绕这些属性创建单独的
AuditInfo
包装器类。有没有办法用JAXB注释做到这一点?我看着
@XmlElementWrapper
,但这仅用于集合。 最佳答案
不,我不相信。中介班是必要的。
您可以通过将AuditInfo
作为Product
中的嵌套内部类来烦恼,并在Product
中添加getter和setter方法,以设置AuditInfo
上的字段。 Product
的客户端永远不需要知道。
public class Product {
private @XmlElement AuditInfo auditInfo = new AuditInfo();
public void setDateCreated(...) {
auditInfo.dateCreated = ...
}
public static class AuditInfo {
private @XmlElement String dateCreated;
}
}