我有一个简单的课程:
@XmlRootElement
@XmlAccessorType(XmlAccessType.PROPERTY)
public class foo {
boolean bar = true;
boolean getBar () {
return this.bar;
}
void setBar (boolean bar) {
this.bar = bar;
}
}
请注意,创建类时,该栏会初始化为true。
当从生成的jaxb架构生成此类时,它将失去默认初始化。是否有任何jaxb注释可以设置默认初始化值?或者其他任何方式来做到这一点?
更新: 添加@XmlElement(defaultvalue =“true”),如下所示:
@XmlElement (defaultvalue="true")
boolean getBar () {
return this.bar;
}
生成以下架构:
<xs:element default="true" name="bar" type="xs:boolean"/>
然而,在重构类时,Java的JAXB实现并不尊重这一点。生成的类看起来像这样:
@XmlAccessorType(XmlAccessType.FIELD)
public class foo {
@XmlElement(defaultValue = "true")
protected boolean bar;
boolean getBar () {
return this.bar;
}
void setBar (boolean bar) {
this.bar = bar;
}
}
请注意,对于bar,我们已经丢失了默认初始化值true。