是否有任何方法可以使JAXB不保存哪些值是@Element注释中指定的默认值,然后在从XML加载null或空的元素时将值设置为它?一个例子:
class Example
{
@XmlElement(defaultValue="default1")
String prop1;
}
Example example = new Example();
example.setProp1("default1");
jaxbMarshaller.marshal(example, aFile);
Run Code Online (Sandbox Code Playgroud)
应该生成:
<example/>
Run Code Online (Sandbox Code Playgroud)
并在加载时
Example example = (Example) jaxbUnMarshaller.unmarshal(aFile);
assertTrue(example.getProp1().equals("default1"));
Run Code Online (Sandbox Code Playgroud)
我试图这样做是为了生成一个干净的XML配置文件,并使其更好的可读性和更小的尺寸.
提前退位并表示感谢.
当我使用JAXB编组java对象时,我得到了xml元素
<error line="12" column="" message="test" />
Run Code Online (Sandbox Code Playgroud)
但我想要xml如下
<error line="12" message="test" />
Run Code Online (Sandbox Code Playgroud)
如果列值为空,那么我需要获取如上所示的xml,否则我需要获取元素中的column属性.
有没有办法得到它?