Jaxb使用“get”而不是“is”前缀创建布尔方法访问者名称

时间:2015-01-20 17:19:12

标签: java xml maven jaxb xsd

使用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修复它,现在可以正常工作。

1 个答案:

答案 0 :(得分:6)

Java Bean访问器方法的is前缀仅对原语类型boolean的属性有效。对于所有其他类型(包括java.lang.Boolean引用类型),唯一有效的前缀将被识别为bean属性访问器get

如果元素不可为空(即它没有minOccurs="0"),那么它将绑定到boolean类型的属性,而不是Boolean获得is访问者。