来自XSD的Java int类型

时间:2012-08-28 13:22:17

标签: java xsd jaxb

  

可能重复:
  XJC Generating Integer Instead of int

需要使用primirive int字段生成实体类。但像这样的xml字符串

<xs:element name="RetriesCount" type="xs:int" minOccurs="0" default="2"/>

生成具有名为'retriesCount'的整数字段的类。使用xs:integer会导致使用BigInteger类型的'retriesCount'字段生成。有没有解决方案来生成简单的Java int?

1 个答案:

答案 0 :(得分:4)

由于您的架构显示minOccurs="0",因此JAXB必须使用能够表示null值的类型,这就是它使用Integer的原因。如果您可以将架构更改为minOccurs="1",则可以使用int代替。

请注意,default="2"并不一定符合您对XML的期望。特别是,如果 指定了RetriesCount元素,则绑定属性将仅采用默认值,但该元素没有值(即<RetriesCount />或等效<RetriesCount></RetriesCount> )。如果RetriesCount元素完全不存在,则属性值将为null