如何在Java中获取字段的注释

如何在Java中获取字段的注释,java,serialization,reflection,annotations,jackson,Java,Serialization,Reflection,Annotations,Jackson,我有自己的注解 @Target(ElementType.FIELD) @Retention(RetentionPolicy.RUNTIME) public @interface Template { Class target(); } 此注释用于简单的POJO: public class Something { @JsonSerialize(using = TemplateSerializer.class) @Template(target = PersonRepr

我有自己的注解

@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 seriliazerTemplateSerializer,它在将对象序列化为JSON时传递“地址”

我想知道如何在给定“address”实例的情况下获得@Template注释?
我想获取其“target”字段,然后检查PersonRepresentation.class

您需要首先访问
地址
字段

Field address = Something.class.getField("address");
Template annotation = address.getAnnotation(Template.class);
然后可以获得注释的
target
字段

Class clazz = annotation.target();

正如JB Nizet所评论的,注释中提供的信息与类相关,而与实例无关

您需要首先访问
地址
字段

Field address = Something.class.getField("address");
Template annotation = address.getAnnotation(Template.class);
然后可以获得注释的
target
字段

Class clazz = annotation.target();

正如JB Nizet所评论的,注释中提供的信息与类相关,而与实例无关

注释未链接到实例。它们链接到类及其字段。你的问题对我来说没有多大意义。要获取此注释,请检查
某物
class.Hmmm的
地址
字段。使用Jackons序列化时,我无法访问
某物
。但是好的。这意味着我必须改变我的方法。谢谢。注释没有链接到实例。它们链接到类及其字段。你的问题对我来说没有多大意义。要获取此注释,请检查
某物
class.Hmmm的
地址
字段。使用Jackons序列化时,我无法访问
某物
。但是好的。这意味着我必须改变我的方法。谢谢