我使用反射用 hashMap 中的数据填充 jaxb-object。 如果 @XmlElement 有 name 属性,我应该使用它,如果没有,我应该使用字段名称。
XmlElement anno = field.getAnnotation(XmlElement.class);
String name = anno.name();
我发现,如果 name 属性没有手动设置(例如使用简单的 @XmlElement 注释),name 字段值为“##default”。要检查属性是否已设置,我使用以下代码:
if(!"##default".equals(name)){
但我认为这是不能接受的。我怎样才能做得更好?
最佳答案
@XmlElement
注释的 name 属性的值 "##default"
(默认值)表示 XML 元素名称应从字段派生。因此,您拥有的代码完全有效:
if(!"##default".equals(name)){
用户无法指定
@XmlElement(name="##default")
获取以下 XML:
<root>
<##default>Hello World</##default>
</root>
Javadoc 引用
关于java - 检查@XmlElement是否有name属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17298794/