Java Jaxb使用“创建布尔方法访问器名称”;获得;而不是",;是";前缀
使用jaxb2 maven插件和jaxb xjc,在生成类时,jaxb创建带有get前缀的布尔访问器,但我希望它使用java约定“is”创建 以下是xsd:Java Jaxb使用“创建布尔方法访问器名称”;获得;而不是",;是";前缀,java,xml,maven,jaxb,xsd,Java,Xml,Maven,Jaxb,Xsd,使用jaxb2 maven插件和jaxb xjc,在生成类时,jaxb创建带有get前缀的布尔访问器,但我希望它使用java约定“is”创建 以下是xsd: <xsd:complexType name="QueryWorkgroupRequestType"> <xsd:sequence> ... <xsd:element name="disabled" type="xsd:boolean" minOccurs="0" maxO
<xsd:complexType name="QueryWorkgroupRequestType">
<xsd:sequence>
...
<xsd:element name="disabled" type="xsd:boolean" minOccurs="0" maxOccurs="1" />
...
</xsd:sequence>
</xsd:complexType>
但是我想要
public Boolean isDisabled() {
return disabled;
}
我试过了
但是没有机会
**已解决**
我终于可以解决这个问题了,maven使用了JDK1.8,不知怎的用了1.8。使用1.6修复了它,现在可以根据需要工作。Java Bean访问器方法的
is
前缀仅对基元类型boolean
的属性有效。对于所有其他类型(包括java.lang.Boolean
reference类型),将被识别为bean属性访问器的唯一有效前缀是get
如果元素不可为null(即它没有
minOccurs=“0”
),则它将绑定到类型为布尔的属性,而不是布尔的属性,并将获得is
访问器。不幸的是,它必须是Boolean@hevi不幸的是,在这种情况下,它必须是get
-返回非boolean
类型的isSomething
方法不符合Java Bean属性访问器的条件。XJC中有一个错误,它为boolean生成is*,这是错误的,根据JavaBean规范,您可以传递XJC标志-enableIntrospection
,以生成正确的getter。请参阅使用1.6并没有“修复”任何东西-JAXB参考实现的早期版本错误地为布尔
属性生成了“is”访问器,而不是“get”访问器。此错误已修复,但您正在使用的Java6似乎包含有错误版本的JAXB。无论是哪种情况,都有一个代码使用“错误”版本,并且可能有一些代码存在相同的问题。我不确定哪一个是错误的,因为使用enableJavaNamingConventions对jdk1.8也不起作用,所以我觉得仍然存在歧义。
public Boolean isDisabled() {
return disabled;
}