Dod*_*FXP 1 java reflection serialization annotations jackson
我有自己的注解
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface Template {
Class target();
}
Run Code Online (Sandbox Code Playgroud)
这个注解用在一个简单的 POJO 中:
public class Something {
@JsonSerialize(using = TemplateSerializer.class)
@Template(target = PersonRepresentation.class)
private TemplateFoo address = new TemplateFoo() {};
}
Run Code Online (Sandbox Code Playgroud)
我有 Jackson seriliazer TemplateSerializer,它在将对象序列化为 JSON 时传递“地址”。
我想知道如何在给定“地址”实例的情况下获得 @Template 注释?我想获取它的“目标”字段,然后检查 PersonRepresentation.class
您需要先访问address Field.
Field address = Something.class.getField("address");
Template annotation = address.getAnnotation(Template.class);
Run Code Online (Sandbox Code Playgroud)
然后就可以得到target注解的字段
Class clazz = annotation.target();
Run Code Online (Sandbox Code Playgroud)
正如 JB Nizet 所评论的那样,注释中提供的信息与类相关,而不是与实例相关。