如何使用jersey客户端映射java.util.Optional
作者:互联网
我有一个DTO,其字段类型为java.util.Optional,像这样:
public class Person {
private final Optional<Long> id;
@JsonCreator
public Person(@JsonProperty("id") Long id) {
this.id = id;
}
public Optional<Long> id {
return this.id
}
}
如果我尝试将其序列化为json格式并由jersey客户端发送,则服务器将引发以下异常:
com.fasterxml.jackson.databind.JsonMappingException: Can not instantiate value of type [simple type, class java.util.Optional<java.lang.Long>] from Integral number (1); no single-int-arg constructor/factory method
球衣客户端可以使用java.util.Optional吗?
谢谢.
解决方法:
json不包含可选的,它包含一个long,因此您需要从得到的Long中创建一个Optional:
@JsonCreator
public Person(@JsonProperty("id") Long id) {
this.id = Optional.ofNullable(id);
}
标签:jackson,jersey-2-0,jersey-client,json,java 来源: https://codeday.me/bug/20191026/1937797.html