【问题标题】:Annotation as shortcut for another annotation?注释作为另一个注释的快捷方式?
【发布时间】:2016-07-28 17:51:33
【问题描述】:

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

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

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

@JsonSerialize(using = XSerializer.class)
@JsonDeserialize(using = XDeserializer.class)

【问题讨论】:

    标签: java annotations jackson


    【解决方案1】:

    您可以使用@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 {
    }
    

    【讨论】:

    • 谢谢!这正是我想要的!
    猜你喜欢
    • 2021-02-03
    • 1970-01-01
    • 1970-01-01
    • 2018-01-07
    • 2017-10-29
    • 2023-01-02
    • 2022-07-15
    • 1970-01-01
    • 2011-01-01
    相关资源
    最近更新 更多