繁体   English   中英

JAXB默认值

[英]JAXB Default value

我是JAXB的新手。 我正在尝试使用JAXB解组Foo对象。 但是,未设置默认值。 请告诉我我在做什么错

public class TestJAXBDefault{
    @XmlAccessorType(XmlAccessType.FIELD)
    @XmlRootElement(name = "foo")
    public static class Foo {
        @XmlElement(defaultValue = "Hello")
        protected String bar;
    }

    @Test
    public void testDefaultValue() {
        Foo foo = JAXB.unmarshal(new StringReader("<foo></foo>"), Foo.class);
        Assert.assertNotNull(foo.bar);
    }
}

您将字段Foo.bar映射到XML元素(通过使用@XmlElement)。 解组文档时,bar字段的将设置为bar元素的内容 当bar元素存在但为空时,将使用注释中指定的默认值。 如果丢失,它将为null

<foo></foo>               -> Foo.bar is null
<foo><bar/></foo>         -> Foo.bar is "Hello"
<foo><bar></bar></foo>    -> Foo.bar is "Hello"
<foo><bar>baz</bar></foo> -> Foo.bar is "baz"

暂无
暂无

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

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