注释作为另一个注释的快捷方式?

时间:2016-07-28 17:51:34

标签: java annotations jackson

如何创建注释,例如与另一个Jackson注释等效的@DateOutput,例如:

@Column(insert="false", update="false")
private String genre;

或理想情况下,对一组注释,例如

@JsonFormat(shape=JsonFormat.Shape.STRING, pattern="yyyy-MM-dd'T'HH:mm:ss.SSSZ", timezone="UTC")

1 个答案:

答案 0 :(得分:3)

您可以使用@JacksonAnnotationsInside作为注释容器,如下所示:

@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.FIELD, ElementType.METHOD})
@JacksonAnnotationsInside
@JsonFormat(shape=JsonFormat.Shape.STRING, pattern="yyyy-MM-dd'T'HH:mm:ss.SSSZ", timezone="UTC")
public @interface DateOutput {
}

并使用它来注释类中的字段,如下所示:

public class Foo {

   @DateOutput
   private Date date;

}

您还可以在一个注释下捆绑一组注释:

@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.FIELD, ElementType.METHOD})
@JacksonAnnotationsInside
@JsonSerialize(using = XSerializer.class)
@JsonDeserialize(using = XDeserializer.class)
public @interface MyAnnotation {
}