2011-01-14 5 views
79

Supongamos que tengo un método session.get(str: String): String pero no sabe si le devolverá una cadena o un valor nulo, porque proviene de Java.¿Envolviendo el método de devolución nula en Java con la opción en Scala?

¿Existe alguna manera más fácil de tratar esto en Scala en lugar de session.get("foo") == null? Tal vez un poco de magia se aplica como ToOption(session.get("foo")) y luego me puede tratar la información de manera Scala como

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

Para más trucos de opciones, vea http://blog.tmorris.net/ scalaoption-cheat-sheet/ – Landei

+3

El enlace de arriba debe ser http://blog.tmorris.net/posts/scalaoption-cheat-sheet/. –

Respuesta

140

el método del objeto Option compañero apply sirve como una función de conversión de referencias anulables:

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

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

El objeto Option tiene una apply método que hace exactamente eso:

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