しばらくの間、私はscalaをnullを返す可能性のあるJavaメソッドと統合するのに苦労してきました。私は大いに役立つ次のユーティリティを思いついた:
// produce an Option, nulls become None
object Maybe {
def apply[T](t:T) = if (t==null) None else Some(t)
}
Maybe(javaClass.getResultCouldBeNull()).map( result => doSomeWork(result) )
このソリューションについていくつか質問があります。
- 使用するより良いまたはより標準的なパターンはありますか?
- すでに存在するものを複製していますか?
- この機能には隠れた落とし穴がありますか?