【发布时间】:2017-11-20 19:05:19
【问题描述】:
当我试图在 Option[String] 类型的字段中影响 String 类型的值时,我收到以下错误:
type mismatch; found : String required: Option[String]
如何将值 myValue:String 影响到字段 myField:Option[String] 中?
【问题讨论】:
标签: scala
当我试图在 Option[String] 类型的字段中影响 String 类型的值时,我收到以下错误:
type mismatch; found : String required: Option[String]
如何将值 myValue:String 影响到字段 myField:Option[String] 中?
【问题讨论】:
标签: scala
您也可以只使用 Option(myValue),它将 null 转换为 None,将非 null 转换为 Some。
【讨论】:
您可以像这样将任何对象包装在 Option 中:
val opt = Some("foo")
【讨论】:
Option(...) 以避免得到Some(null),因为通常会传递变量而不是常量字符串。
Some("foo")
您可以将对象包装在 Some 类中
val myField = Some(myValue)
或者如果你没有任何东西,通过
None
称为选项模式
【讨论】:
Option(...) 已经为您做了一切。它将null 值替换为None 并将其他值包装在Some(...) 中。无需在代码中做任何区分。
如果要将空字符串转换为 None 更通用的解决方案是:Option(str).filter(_.nonEmpty)
【讨论】: