【问题标题】:How to do inheritance @JsonFormat annotation in java?如何在java中继承@JsonFormat注解?
【发布时间】:2017-07-24 08:02:50
【问题描述】:

我正在从事 JPA-Hibernate 项目。我有一个日期脱色问题,但我在下面也有解决方案。

@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss.S")
private Date createdAt;

当我对日期使用@JsonFormat 注释时,我解决了问题,但我不想在每个日期变量中都使用这个注释。我想使用 MyDate 注释,如下所示。

import java.lang.annotation.ElementType;
import java.lang.annotation.Inherited;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

import com.fasterxml.jackson.annotation.JsonFormat;

@Inherited
@Target({ ElementType.ANNOTATION_TYPE, ElementType.FIELD,  ElementType.METHOD, ElementType.PARAMETER, ElementType.TYPE })
@Retention(RetentionPolicy.RUNTIME)
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss.S")
public @interface MyDate {

}

当我使用@MyDate 注释时,它不能正常工作。我一直在失败,就像我从未使用过它一样。我的错误是什么?

【问题讨论】:

    标签: java inheritance annotations


    【解决方案1】:

    这是你需要的:

    用法:

    @MyDate    
    private Date createdAt;
    

    还有 MyDate 自定义注解类:

    import java.lang.annotation.Retention;
    import java.lang.annotation.RetentionPolicy;
    
    import com.fasterxml.jackson.annotation.JacksonAnnotationsInside;
    import com.fasterxml.jackson.annotation.JsonFormat;
    
    @JacksonAnnotationsInside
    @Retention(RetentionPolicy.RUNTIME)
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss.S")
    public @interface MyDate {}
    

    【讨论】:

      【解决方案2】:

      ¿您是否尝试过自定义 Jackson 注释?

      看看这个 --> http://www.baeldung.com/jackson-annotations#highlighter_348118

      【讨论】:

      • 请在您的回答中引用链接的相关部分,同时仍保留链接。这里不能很好地容忍仅链接的答案。
      猜你喜欢
      • 2022-12-12
      • 1970-01-01
      • 2011-07-29
      • 2011-11-02
      • 2015-08-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-08
      相关资源
      最近更新 更多