java - java中如何继承@JsonFormat注解?

标签 java inheritance annotations

我正在从事 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 注释时,它无法正常工作。我总是失败,就像我从未使用过它一样。我的错误是什么?

最佳答案

这是您需要的:

用法:

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

关于java - java中如何继承@JsonFormat注解?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45275197/

相关文章:

java - 加载应用程序时出现异常 : java. lang.IllegalStateException : ContainerBase. addChild : start: org. apache.catalina.LifecycleException:

java - 比较 2 个 ArrayList<HashMap<String, String>> 之间的字符串

c++ - 在 C++ 中是否可以定义一个纯虚函数?

java - [学习EJB] : annotation type is not applicable to this kind of declaration?

android - android @TargetApi注解是什么意思

java - ArrayList 错误,应用程序崩溃

java - 在android中的BroadcastReceiver类的onReceive方法中访问ArrayList项目

c++ - 此C++代码将如何工作?

c++ - 从基类对象创建派生类

image-processing - COWC 数据集注释