检查@XmlElement是否具有name属性



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

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

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

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

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

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

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

用户无法指定

@XmlElement(name="##default")

要获得以下XML:

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

Javadoc参考

  • http://docs.oracle.com/javase/7/docs/api/javax/xml/bind/annotation/XmlElement.html#name%28%29

相关内容

  • 没有找到相关文章

最新更新