在Java中包装空值返回方法,在Scala中包装Option?

2022-08-31 08:56:53

假设我有一个方法,但你不知道它会返回字符串还是空值,因为它来自Java。session.get(str: String): String

有没有一种更简单的方法在Scala中解决这个问题,而不是?也许一些魔法应用了,然后我可以用Scala的方式对待它,就像session.get("foo") == nullToOption(session.get("foo"))

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

答案 1

伴随对象的方法用作从可为 null 的引用的转换函数:Optionapply

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

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

答案 2

该对象有一个完全可以做到这一点的方法:Optionapply

var myOptionalString = Option(session.get("foo"));

推荐