[英]How to get annotations of field in Java
我有自己的注释
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface Template {
Class target();
}
此注释用于简单的POJO:
public class Something {
@JsonSerialize(using = TemplateSerializer.class)
@Template(target = PersonRepresentation.class)
private TemplateFoo address = new TemplateFoo() {};
}
我有Jackson seriliazer TemplateSerializer在将对象序列化为JSON时获得'地址'。
我想知道如何给出'地址'实例的@Template注释? 我想得到它的'target'字段,然后检查PersonRepresentation.class
您需要先访问address
Field
。
Field address = Something.class.getField("address");
Template annotation = address.getAnnotation(Template.class);
然后,您可以获取注释的target
字段
Class clazz = annotation.target();
正如JB Nizet所评论的那样,Annotation中提供的信息与类相关,而不是与实例相关。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.