【发布时间】:2013-07-10 17:13:51
【问题描述】:
我有一些 XML 映射到 Java 类并包含类似的属性
<element attrib = 'true|false|null'>
这意味着,该属性被映射到一个布尔字段并且可以是真/假或空。我确实需要能够显式设置它,以覆盖默认的 true 值。
这在 XML 中可行吗?它在 JAXB 中可能吗?如果没有,是否有推荐的最佳实践?我读过你可以这样做using a sub-element,但是我不喜欢在不需要的时候这样做。我想将属性保留为属性。目前,听起来唯一的方法是使用 XmlAdapter,我想知道是否有更快的方法。
【问题讨论】:
-
I do need to be able to explicitly set it, in order to override the default true value.- 你能更准确地解释一下吗? -
我在 Java 级别使用 attrib = null 表示“未指定,应用配置文件中定义的默认值”。但是 Element.attribute 的默认值是 true,所以从 XML 中将其设置为 null 的唯一方法是能够以某种方式显式地说 null,而不是完全省略属性定义,因为我理解,这会保留默认值原封不动。