首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用vavr进行空检查

使用vavr进行空检查
EN

Stack Overflow用户
提问于 2019-02-27 11:11:45
回答 1查看 891关注 0票数 0

对于我的API,我解析一个对象并使用lombok构建器创建我的对象。其中一个变量是类型为arrivalTime的“LocalDateTime”,当然,它可能为null。

我以前是这样的:

代码语言:javascript
复制
visits.add(visit.builder()
      .arrivalTime(legacyVisit.getArrivalTime() == null ? null :
          LocalDateTime.parse(legacyVisit.getArrivalTime(), ISO_OFFSET_DATE_TIME))

但我正在寻找一种更好的方法,也许使用vavr选项?但我遇到麻烦了。我知道,如果逻辑不是null,我会把它放到"map“中,如果它是空的,我会把它放到"get”逻辑中。但我不能得到(空)。如果arrivalTime是空的,我想把它保持为空。

代码语言:javascript
复制
visits.add(visit.builder()
      .arrivalTime(Option.of(legacyVisit.getArrivalTime())
          .map(p -> LocalDateTime.parse(p, ISO_OFFSET_DATE_TIME)))

我还尝试将对象中的arrivalTime变量转换为一个选项,但我只是在API中将该对象作为响应发送,它将其转换为如下所示:

代码语言:javascript
复制
    "arrivalTime": {
        "empty": true,
        "lazy": false,
        "singleValued": true,
        "async": false,
        "defined": false,
        "orNull": null
    },

这很难看。有什么想法吗?

EN

回答 1

Stack Overflow用户

发布于 2019-02-27 13:15:19

看起来,让arrivalTime成为Option将是最有表现力和最强大的。正如您所提到的,您可以很容易地映射这些值。

但是如前所述,序列化可能需要一些工作。有些Vavr模块正是这样做的:

  • vavr-jackson,当您将杰克逊用作JSON序列化程序库时,可以使用它
  • vavr-gson,当您使用GSON作为JSON序列化程序库时,可以使用它
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54904152

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档