Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 正确反序列化可选类型_Java_Kotlin_Jackson_Optional - Fatal编程技术网

Java 正确反序列化可选类型

Java 正确反序列化可选类型,java,kotlin,jackson,optional,Java,Kotlin,Jackson,Optional,我有以下课程: class X( val x: Optional<Optional<Int>> ) 为此: mapper.valueToTree(X(Optional.of(Optional.of(1)))) // -> {"x":1} mapper.valueToTree(X(Optional.of(Optional.empty()))) // -> {"x":null} mapper.valueToTree(X(Optional.empty())

我有以下课程:

class X(
    val x: Optional<Optional<Int>>
)
为此:

mapper.valueToTree(X(Optional.of(Optional.of(1)))) // -> {"x":1}
mapper.valueToTree(X(Optional.of(Optional.empty()))) // -> {"x":null}
mapper.valueToTree(X(Optional.empty())) // -> {}
但可悲的是,它并没有起到相反的作用:

{"x":1} -> X(Optional.of(Optional.of(1)))
{"x":null} -> X(Optional.of(Optional.empty())
{} -> X(Optional.empty())
具体地说,我希望
{“x”:null}
反序列化为
x(可选的.of(可选的.empty())

有办法吗?

您是否知道可选选项不应该是(de)可序列化?这似乎是可能的,但你为什么会得到它?
可选的
,至少在Java中,是用于方法的返回值,而不是用于字段。我完全不理解在任何事情上使用
可选的
。你试过编写自己的序列化程序吗?
{"x":1} -> X(Optional.of(Optional.of(1)))
{"x":null} -> X(Optional.of(Optional.empty())
{} -> X(Optional.empty())