のファクトリメソッドはOption
aを:null
に変換しNone
ます
scala> val os1: Option[String] = Option(null)
os1: Option[String] = None
補遺
私はあなたの質問を誤解したかもしれません...
スコープを慎重に制限すると、暗黙的な変換を使用できます。
scala> implicit def nullable2Option[T >: Null](t: T): Option[T] = if (t == null) None else Some(t)
warning: there were 1 feature warnings; re-run with -feature for details
nullable2Option: [T >: Null](t: T)Option[T]
scala> val os2: Option[String] = "foo"
os2: Option[String] = Some(foo)
scala> val nullS: String = null
nullS: String = null
scala> val os3: Option[String] = nullS
os3: Option[String] = None
これは、コンパイラがnull許容型の値をにブリッジする試みを駆動するために使用できる利用可能な型情報がある場合はいつでも機能しますOption
。たとえば、メソッドを呼び出す場合(タイプは常に明示的です)。