当前位置: 首页 > 知识库问答 >
问题:

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

邓翼
2023-03-14

使用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;
}

我试过了

**已解决**

我终于可以解决这个问题了,maven使用了JDK1.8,不知怎的,使用了1.8。使用1.6修复它,现在可以按需要工作了。


共有1个答案

燕永昌
2023-03-14

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

如果元素不可为null(即它没有minOccurs=“0”),那么它将被绑定到类型为boolean的属性,而不是boolean,并将获得is访问器。

 类似资料:
  • 我们想断言,自定义对象列表包含一个对象,其某些字段具有特定的值,以及一系列类似这样的断言 然而,自定义对象也有布尔类型字段,其中getter方法有一个“is”前缀而不是“get”,在那里断言似乎在以下情况下失败 是否有现成的解决方案来克服这一点,或者它应该用某种自定义匹配器来处理?

  • 问题内容: 我正在使用CSS flexbox重新构建网站。 在检查浏览器兼容性时,我看到所有现代浏览器都支持flexbox,但Safari8和IE 10需要供应商前缀。 在检查GoogleAnalytics(分析)时,我发现过去6个月中有96%的网站访问者使用的浏览器完全支持flexbox。其余4%使用需要前缀或不提供支持的浏览器。 由于我们谈论的是4%的用户,并且这个数字会越来越小(并且我希望代

  • 我对Java编码非常陌生,我已经研究这个问题大约4天了。我正在做一个选择你自己的结局故事。当我到达第69行时,如果读者选择是,我希望系统重新开始故事,如果他们选择否,则结束程序。我不确定我是否正确地编码了while循环,或者我甚至可以使用中断;操作员就像我在使用它一样。对不起,我的代码太难看了,哈哈,我正在努力变得更好。感谢您的建议! }

  • 这个简单的单道具类可以很好地工作,并且可以使用Ummarshale 输出: 但是,如果我用方法isA()取消注释该行,它将不再工作,并且输出仅为(on win): 所以它看起来像是JAXB的命名冲突。实际上,acessor类型none应该忽略othef字段,但是isA()方法阻止了a字段被标记。 所以,一种不经意的修复方法,就是重命名方法isA(),以避免冲突。但我想知道: 1)这真的被JAXB禁

  • 我有一个布尔变量在lombok生成。我正在使用lombok注释。如何将方法更改为hasObject()

  • 我希望将几个模式转换成Java代码。图式都是相似的;例如,每一个都有一个TXLife根对象。如果每个模式生成具有唯一类名的代码,那么管理代码将会更容易。我可以使用“package”绑定将每个模式的代码放入其自己的包中,但是当我试图使用“prefix”绑定来更改类名时,它会忽略它。 下面是我的schema_bindings.xml文件: 当我运行得到的xjc命令时(我必须修改xjc.bat文件中的类