2011-01-14 69 views
79

假设我有一个方法session.get(str: String): String但你不知道它是否会返回一个字符串或null,因为它来自Java。使用Scala包装Java中的null返回方法?

有没有一种更简单的方法来对待在Scala而不是session.get("foo") == null?也许一些魔术适用像ToOption(session.get("foo")),然后我可以像对待它在斯卡拉方式

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

更多选项技巧请参阅http://blog.tmorris.net/ scalaoption-cheat-sheet/ – Landei 2011-01-14 16:03:25

回答

140

Option同伴对象的apply方法作为从可空引用转换函数:

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

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

Option对象具有apply方法确实如此:

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