使用JAXB从未编组的java对象获取xml元素名
在我的Java模型中,我用使用JAXB从未编组的java对象获取xml元素名,java,xml,jaxb,Java,Xml,Jaxb,在我的Java模型中,我用@xmlement(name=“xxx”)注释了字段 有没有一种方法可以通过编程获得xml元素名?假设我们有带注释的实体 @XmlRootElement public class Product { String name; @XmlElement(name="sss") public void setName(String name) { this.name = name; } }
@xmlement(name=“xxx”)
注释了字段
有没有一种方法可以通过编程获得xml元素名?假设我们有带注释的实体
@XmlRootElement
public class Product {
String name;
@XmlElement(name="sss")
public void setName(String name) {
this.name = name;
}
}
下面的代码将使用打印“sss”。这里的“产品”是产品类的对象
import java.lang.reflect.Method;
...
Method m = product.getClass().getMethod("setName",String.class);
XmlElement a = m.getAnnotation(XmlElement.class);
String nameValue = a.name();
System.out.println(nameValue);
如果需要从私有字段中获取@XmlElement注释属性,可以使用如下方法:
Field nameField = product.getClass().getDeclaredField("name");
nameField.setAccessible(true);
XmlElement a = nameField.getAnnotation(XmlElement.class);
String nameValue = a.name();
System.out.println(nameValue);
+1-需要注意的一点是,如果注释只是
@xmlement
,那么name参数的值将是##default
。在这种情况下,您需要将JAXB(JSR-222)规范中的规则应用于属性名,以派生元素名。@BlaiseDoughan您能详细说明如何使用JAXB派生元素名吗?