tipo - Obtener el nombre del elemento xml del objeto java no asignado con JAXB
jaxbelement ejemplo (1)
Tengo campos anotados con @XmlElement(name="xxx")
en mi modelo de Java.
¿Hay alguna manera de obtener el nombre del elemento xml programáticamente?
Digamos que tenemos una entidad anotada
@XmlRootElement
public class Product {
String name;
@XmlElement(name="sss")
public void setName(String name) {
this.name = name;
}
}
El siguiente código imprimirá "sss" usando java Reflection API . Aquí ''producto'' es un objeto de la clase de Producto
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);
Si necesita obtener el atributo de anotación @XmlElement del campo privado , podría usar algo como esto:
Field nameField = product.getClass().getDeclaredField("name");
nameField.setAccessible(true);
XmlElement a = nameField.getAnnotation(XmlElement.class);
String nameValue = a.name();
System.out.println(nameValue);