繁体   English   中英

jaxb生成的类的默认初始化值

[英]default initialization value for jaxb generated class

我有一堂简单的课:

@XmlRootElement
@XmlAccessorType(XmlAccessType.PROPERTY)
public class foo {
    boolean bar = true;

    boolean getBar () {
        return this.bar;
    }

    void setBar (boolean bar) {
        this.bar = bar;
    }
}

请注意,创建类时,该bar初始化为true。

从生成的jaxb模式生成此类时,它将丢失默认的初始化。 是否有可以设置默认初始化值的jaxb批注? 或任何其他方式做到这一点?

更新:添加@XmlElement(defaultvalue =“ true”),如下所示:

@XmlElement (defaultvalue="true")
boolean getBar () {
    return this.bar;
}

生成以下架构:

<xs:element default="true" name="bar" type="xs:boolean"/>

但是,Java的JAXB实现在重建类时不赞成这样做。 生成的类如下所示:

@XmlAccessorType(XmlAccessType.FIELD)
public class foo {
    @XmlElement(defaultValue = "true")
    protected boolean bar;

    boolean getBar () {
        return this.bar;
    }

    void setBar (boolean bar) {
        this.bar = bar;
    }
}

注意,我们丢失了bar的默认初始化值true。

JAXB批注@XmlElement(defaultValue = "defValue")是您所需要的。 javadoc

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM