【发布时间】:2014-02-01 14:18:35
【问题描述】:
Jackson 要求在无参数构造函数上使用 public 修饰符,而 jdk8 的 Optional 仅提供静态方法。有哪些可能的解决方法?一般来说,如果我必须使用提供遵循这种模式的类的 3rd 方库,我该怎么办?
【问题讨论】:
-
@BrianRoach,我仍然不知道如何在泛型类型的情况下使用它。
标签: java serialization jackson
Jackson 要求在无参数构造函数上使用 public 修饰符,而 jdk8 的 Optional 仅提供静态方法。有哪些可能的解决方法?一般来说,如果我必须使用提供遵循这种模式的类的 3rd 方库,我该怎么办?
【问题讨论】:
标签: java serialization jackson
不,Jackson 不需要公共的无参数构造函数;任何访问级别(甚至private)都可以。但如果没有提供自定义反序列化器,它确实需要一个无参数的构造函数。
新类型所需要的,通常是扩展模块。实际上有计划添加一个“JDK8 模块”,因为核心 Jackson 目前只需要 1.6,并且基线不太可能在不久的将来移动。但是添加对新类型的支持应该相对容易:例如,Jackson Guava 数据类型模块 (https://github.com/FasterXML/jackson-datatype-guava) 添加了对 Guava 的 optional 的支持。同时,您可以从那里复制反序列化器,通过您定义的SimpleModule 使用它。
【讨论】: