【发布时间】:2010-04-19 14:22:35
【问题描述】:
我们有这个 XML:
<Summary>
<ValueA>xxx</ValueA>
<ValueB/>
</Summary>
<ValueB/> 永远不会有任何属性或内部元素。它是一个布尔类型元素 - 它存在(真)或不存在(假)。
JAXB 生成了一个带有 String valueA 成员的 Summary 类,这很好。但是对于 ValueB,JAXB 生成了一个 ValueB 内部类和一个对应的成员:
@XmlElement(name = "ValueB")
protected Summary.ValueB valueB;
但我想要的是boolean 成员和no 内部类:
@XmlElement(name = "ValueB")
protected boolean valueB;
你怎么能做到这一点?
我不想重新生成类,我只想手动更改代码。
更新:根据接受的答案,我们创建了一个新方法,该方法返回布尔值,条件是 valueB == null。
当我们使用 Hibernate 时,我们使用 @Transient 注释 valueB 并使用 Hibernate 的 @Column 注释注释布尔 getter。
【问题讨论】:
-
你真的需要一个布尔字段吗?为什么不只是布尔 getter/setter 方法?