我有一个 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
jersey 客户端可以使用 java.util.Optional 吗?
谢谢。
最佳答案
json 不包含一个可选的,它包含一个长的,所以你需要从你得到的 Long
中创建一个 Optional
:
@JsonCreator
public Person(@JsonProperty("id") Long id) {
this.id = Optional.ofNullable(id);
}
关于java - 如何将 java.util.Optional 映射到 jersey 客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40038232/