Getter返回类型为Optional

时间:2018-04-18 08:45:32

标签: java

我有以下困境。

我的应用程序正在使用返回json的外部Rest服务:

公开

{
   "title" : "some title",
   "tag" : "some tag",
   "date" : some_date,
    ... (more)
}

我有DTO来映射这个:

public class PublicationDto {
    String title;
    String tag;
    Date date;
}

假设它是lombok注释并且有getter和setter。 现在,日期可以是可选的。它可以是json或不是。 所以在映射的Dto日期可以为null。

我的困境是,如果我稍后应该在处理PublicationDto的代码中进行空检查,或者我应该使用Optional做一些技巧。例如,我可以覆盖PublicationDto中的getDate方法以返回Optional:

public Optional<Date> getDate();

在这种情况下,最佳做法是什么?

1 个答案:

答案 0 :(得分:0)

JSON Java 反序列化中没有最佳实践表明如果不使用 Optional,您将被绞死。 Java 不是 Scala。这取决于您打算如何处理缺失值。用空支票代替空支票不会给你带来任何好处,除非你正在吹嘘你正在编写更“现代”的代码。但是,如果您要对日期执行进一步的操作,例如回退到默认值,并进一步格式化它以进行显示,那么使用 Optional 可用于进行功能类型链接。