For a while I have been struggling to integrate scala with java methods that might return null. I came up with the following utility which helps a lot:
// 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) )
I have a few questions about this solution:
Scala's built-in Option is what you're setting out to reinvent.
In that case:
scala> val sOpt: Option[String] = Option(null)
sOpt: Option[String] = None
Why bother making a whole companion object out of it? It's just a function, so you don't need to implement it as an object that looks like a function.
object MyUtilities{
// a whole bunch of other utilities that you use all over can also be put in this class.
def maybe[T](t:T) = if (t==null) None else Some(t)
}
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.