我有以下困境。
我的应用程序正在使用返回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();
在这种情况下,最佳做法是什么?
答案 0 :(得分:0)
JSON Java 反序列化中没有最佳实践表明如果不使用 Optional
,您将被绞死。 Java 不是 Scala。这取决于您打算如何处理缺失值。用空支票代替空支票不会给你带来任何好处,除非你正在吹嘘你正在编写更“现代”的代码。但是,如果您要对日期执行进一步的操作,例如回退到默认值,并进一步格式化它以进行显示,那么使用 Optional
可用于进行功能类型链接。