如何在java中继承@JsonFormat注释?

时间:2017-07-24 08:02:50

标签: java inheritance annotations

我正在研究JPA-Hibernate项目。我有一个日期deserilaze问题,但我也有下面的解决方案。

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

当我使用带日期的@JsonFormat注释时,我解决了问题,但我不想在每个Date变量中使用此注释。我想使用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注释时,它无法正常工作。我一直在失败,就像我从未使用过它一样。我的错是什么?

2 个答案:

答案 0 :(得分:0)

¿你试过Custom Jackson Annotation吗?

检查出来 - > http://www.baeldung.com/jackson-annotations#highlighter_348118

答案 1 :(得分:0)

这是您需要的:

用法:

@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 {}