检查@XmlElement是否具有name属性

时间:2013-06-25 13:33:35

标签: java reflection jaxb

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

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

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

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

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

1 个答案:

答案 0 :(得分:0)

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

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

用户无法指定

@XmlElement(name="##default")

获取以下XML:

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

Javadoc参考