我有一个使用Jersey框架编写的RESTapi。随之而来的是一个POJO类。现在,我需要如何在POJO中使特定字段为可选字段,以便无论该可选字段如何都可以使用api?我希望API在两种情况下都可以使用,即
答案 0 :(得分:0)
我猜您是指POJO中字段的序列化。由于您尚未说明要使用的杰克逊版本,因此必须使用以下批注之一允许空值:
可以在类或吸气剂上使用:
@JsonInclude(Include.NON_NULL)
如果您使用的是Jackson <2.x,请使用以下命令:
@JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL)
答案 1 :(得分:0)
Java 8的主要用于方法的返回值,而不是Java类(POJO)的数据属性,如Java SE 8中的Optional中所述:
当然,人们会做自己想做的事。但是我们确实有一个明确的 添加此功能时的意图,这不是一般性的 目的也许是某种类型,很多人会喜欢我们 这样做。 我们的目的是为图书馆提供有限的机制 方法返回类型,其中需要一种清晰的方法来表示 “没有结果”,并且对此使用null绝对有可能 导致错误。
此处的关键是着重于用作返回类型。 课程是 绝对不打算用作Java Bean的属性。 可见,Optional没有实现Serializable, 这对于广泛使用作为财产的财产通常是必需的 对象。
[学分]:https://blog.joda.org/2014/11/optional-in-java-se-8.html