繁体   English   中英

如何在Java中获取字段注释

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM