1

我正在使用反射来用来自 hashMap 的数据填充 jaxb 对象。如果@XmlElement 有name 属性,我应该使用它,如果没有,我应该使用字段名。

XmlElement anno = field.getAnnotation(XmlElement.class);
String name = anno.name();

我发现,如果没有手动设置名称属性(例如使用简单的@XmlElement 注释),名称字段值为“##default”。要检查是否设置了属性,我使用以下代码:

if(!"##default".equals(name)){

但我不认为这是可以接受的。我怎样才能做得更好?

4

1 回答 1

0

"##default"注释的 name 属性的值(默认值)@XmlElement表示 XML 元素名称应该从该字段派生。因此,您拥有的代码是完全有效的:

if(!"##default".equals(name)){

用户无法指定

@XmlElement(name="##default")

要获取以下 XML:

<root>
    <##default>Hello World</##default>
</root>

Javadoc 参考

于 2013-06-25T13:52:40.463 回答