对于我的 API,我正在解析一个对象并使用 lombok 构建器创建我的对象。其中一个变量是 LocalDateTime 类型的“arrivalTime”,当然,它可以为空。
我以前是这样的:
visits.add(visit.builder()
.arrivalTime(legacyVisit.getArrivalTime() == null ? null :
LocalDateTime.parse(legacyVisit.getArrivalTime(), ISO_OFFSET_DATE_TIME))
但我正在寻找一种更好的方法,也许使用 vavr 选项?但我遇到了问题。我知道如果它不为空,我将逻辑放入“映射”,如果它为空,则放入“获取”逻辑。但我不能做 get(null)。如果到达时间为空,我想将其保持为空。
visits.add(visit.builder()
.arrivalTime(Option.of(legacyVisit.getArrivalTime())
.map(p -> LocalDateTime.parse(p, ISO_OFFSET_DATE_TIME)))
我还尝试将我的对象中的到达时间变量转换为选项,但我只是将对象作为我的 API 中的响应发送,它将它变成如下所示:
"arrivalTime": {
"empty": true,
"lazy": false,
"singleValued": true,
"async": false,
"defined": false,
"orNull": null
},
这是非常丑陋的。有任何想法吗?