2011-01-14 2 views
79

Supponiamo di avere un metodo session.get(str: String): String ma non si sa se restituirà una stringa o un valore null, poiché proviene da Java.Wrapping del metodo di null-return in Java con Option in Scala?

C'è un modo più semplice per trattare questo in Scala invece di session.get("foo") == null? Forse qualche magia applicare come ToOption(session.get("foo")) e poi posso trattare in modo Scala come

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

Per ulteriori trucchi Opzione vedere http://blog.tmorris.net/ scalaoption-cheat-sheet/ – Landei

+3

Il link sopra dovrebbe essere http://blog.tmorris.net/posts/scalaoption-cheat-sheet/. –

risposta

140

metodo dell'oggetto Option compagno apply serve come una funzione di conversione da riferimenti nullable:

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

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

L'oggetto Option ha un apply metodo che fa esattamente questo:

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