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():
}