[英]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.