如何获取@XmlElement注释

时间:2015-05-04 10:36:30

标签: java validation reflection xsd annotations

我通过对象图进行遍历以获取所有字段及其给定的注释,并希望根据注释验证从XSD构建的域对象。

然而,由于我不知道如何获取必需属性的值,我卡在@XmlElement上。

import javax.validation.constraints.NotNull;
import javax.xml.bind.annotation.XmlElement;
    public class SomeClass {

     @XmlElement(name = "user_id", required = true)
     @NotNull
     protected String userId;

    }

这一定很简单,但是当我检测到给定的注释是@XmlElement类型时,我无法想象如何检查所需的属性是否设置为true。

    if(annotation.annotationType().equals(XmlElement.class)) {

            // how to check value of required atrribute         
    }

1 个答案:

答案 0 :(得分:1)

你可以这样做:

// iterate over the fields in the required class. check if the annotatino is present
if (inputField.isAnnotationPresent(XmlElement.class)) {
    XmlElement xmlElementAnnotation = inputField.getAnnotation(XmlElement.class);

    // get 'required' value
    if(xmlElementAnnotation.required()) {
        // logic
    }
}