加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

scala – Option.map(null)返回Some(null)

发布时间:2020-12-16 09:50:50 所属栏目:安全 来源:网络整理
导读:我想这个代码片段返回我而不是Some(null): Option(x).map(x.getNullValue) // returns Some(null) 我听说Scalaz库有处理这种情况的功能.那么我如何使用scalaz和标准Scala库实现我的目标? 解决方法 你可以在这里使用flatMap和Option.apply方法,而不是拉入sc
我想这个代码片段返回我而不是Some(null):

Option(x).map(x.getNullValue) // returns Some(null)

我听说Scalaz库有处理这种情况的功能.那么我如何使用scalaz和标准Scala库实现我的目标?

解决方法

你可以在这里使用flatMap和Option.apply方法,而不是拉入scalaz:

Option(initialValue).flatMap(x => Option(x.getNullValue))

这是有效的,因为Option.apply方法智能地处于null状态:

val x: String = null
Option(x) //None
Option("foo") //Some("foo")

所以如果你完全知道价值,你可以简单地做:

Option(x.getNullValue)

您还可以在Option上使用其他方法,如filter,orElse或getOrElse,具体取决于具体情况:

Option(initialValue).map(_.getNullValue).filter(_ != null)
Option(initialValue).orElse(Option(x.getNullValue))
Option(x.getNullValue).getOrElse(defaultValue)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读