使用jaxb2-maven-plugin和jaxb-xjc,在生成类时,jaxb创建带有get前缀的布尔访问器,但我希望它使用java约定“is”创建。
这是xsd:
<xsd:complexType name="QueryWorkgroupRequestType">
<xsd:sequence>
...
<xsd:element name="disabled" type="xsd:boolean" minOccurs="0" maxOccurs="1" />
...
</xsd:sequence>
</xsd:complexType>
,创建的方法是;
public Boolean getDisabled() {
return disabled;
}
但我想改为;
public Boolean isDisabled() {
return disabled;
}
我试过
<xsd:annotation>
<xsd:appinfo>
<jaxb:globalBindings enableJavaNamingConventions="true" generateIsSetMethod="true"/>
</xsd:appinfo>
</xsd:annotation>
但没有机会。
** 已解决 **
最后我可以解决这个问题,maven正在使用jdk 1.8,不知何故使用1.8质量它。使用1.6修复它,现在可以正常工作。
答案 0 :(得分:6)
Java Bean访问器方法的is
前缀仅对原语类型boolean
的属性有效。对于所有其他类型(包括java.lang.Boolean
引用类型),唯一有效的前缀将被识别为bean属性访问器get
。
如果元素不可为空(即它没有minOccurs="0"
),那么它将绑定到boolean
类型的属性,而不是Boolean
和将获得is
访问者。