Java 反序列化LocalDate可选,带有Jdk8Module抛出错误

Java 反序列化LocalDate可选,带有Jdk8Module抛出错误,java,json,serialization,deserialization,optional,Java,Json,Serialization,Deserialization,Optional,我正在用java8测试Optionals,我想通过Json序列化/反序列化LocalDate。因此,我创建了自定义的对象映射器,在其中注册了Jdk8Module: @Bean public ObjectMapper objectMapperBuilder(){ ObjectMapper objectMapper = new ObjectMapper(); objectMapper.registerModule(new Jdk8Module());

我正在用
java8
测试
Optional
s,我想通过
Json
序列化/反序列化
LocalDate
。因此,我创建了自定义的
对象映射器
,在其中注册了
Jdk8Module

    @Bean
    public ObjectMapper objectMapperBuilder(){
        ObjectMapper objectMapper = new ObjectMapper();
        objectMapper.registerModule(new Jdk8Module());
        return objectMapper;
    }
我的
实体
类看起来像:

public class Item implements Serializable{
    @JsonDeserialize(using = LocalDateDeserializer.class)
    private LocalDate insertDate;

    public Item(){}

    public Item(LocalDate insertDate) {
        this.insertDate = insertDate;
    }

    public Optional<LocalDate> getInsertDate() {
        return Optional.ofNullable(insertDate);
    }
}

您是否有任何改进的线索,或者我应该向代码中添加什么使其工作?

对您的配置和环境有相当多的了解,您怀疑因为您有类型为
LocalDate
的成员,但是getter返回
Optional
,会出现类似错误状态的混乱

两个都可能是错的

根据例外情况,我会尝试改变:

public Optional<LocalDate> getInsertDate() {
   return Optional.ofNullable(insertDate);
}

改变

private LocalDate insertDate;

创建一个setter接受操作

public  setInsertDate(Optional<LocalDate> optLocalDate) {
    this.localDate = optLocalDate.get():
}
public setInsertDate(可选optLocalDate){
this.localDate=optLocalDate.get():
}

对您的配置和环境有相当多的了解,您可能会怀疑,因为您有类型为
LocalDate
的成员,但是getter返回
Optional
时会出现类似错误状态的混乱

两个都可能是错的

根据例外情况,我会尝试改变:

public Optional<LocalDate> getInsertDate() {
   return Optional.ofNullable(insertDate);
}

改变

private LocalDate insertDate;

创建一个setter接受操作

public  setInsertDate(Optional<LocalDate> optLocalDate) {
    this.localDate = optLocalDate.get():
}
public setInsertDate(可选optLocalDate){
this.localDate=optLocalDate.get():
}
public  setInsertDate(Optional<LocalDate> optLocalDate) {
    this.localDate = optLocalDate.get():
}