使用Scala中的Option包装Java中的null返回方法?
假设我有一个方法session.get(str: String): 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
方法用作可空引用的转换函数:
scala> Option(null) res4: Option[Null] = None scala> Option(3) res5: Option[Int] = Some(3)
Option
对象有一个apply
方法,它完全符合:
var myOptionalString = Option(session.get("foo"));