1. ホーム
  2. java

[解決済み] Javaでnull-returnするメソッドをScalaのOptionでラップする?

2022-05-13 21:28:22

質問

例えば session.get(str: String): String というメソッドがあったとして、それが文字列を返すのかNULLを返すのか、Javaから来たものだからわからないとします。

の代わりにScalaでこれを扱う簡単な方法はありますか? session.get("foo") == null ? 多分、次のようなマジックが適用されるでしょう ToOption(session.get("foo")) というように、Scala の方法で処理することができます。

ToOption(session.get("foo")) match {
    case Some(_) =>;
    case None =>;
}

どのように解決するのですか?

この Option コンパニオン・オブジェクトの apply メソッドは、NULL可能な参照からの変換関数として機能します。

scala> Option(null)
res4: Option[Null] = None

scala> Option(3)   
res5: Option[Int] = Some(3)