2011-01-14 6 views
79

Angenommen, ich habe eine Methode session.get(str: String): String, aber Sie wissen nicht, ob es Ihnen eine Zeichenfolge oder eine Null zurückgibt, da es aus Java stammt.Wrapping Null-Rückgabe-Methode in Java mit Option in Scala?

Gibt es eine einfachere Möglichkeit, dies in Scala statt session.get("foo") == null zu behandeln? Vielleicht gelten einige Zauber wie ToOption(session.get("foo")) und dann kann ich es wie

in Scala Art und Weise behandelt
ToOption(session.get("foo")) match { 
    case Some(_) =>; 
    case None =>; 
} 
+4

Für weitere Option Tricks siehe http://blog.tmorris.net/ scalaoption-cheat-sheet/ – Landei

+3

Der Link oben sollte http://blog.tmorris.net/posts/scalaoption-cheat-sheet/ sein. –

Antwort

140

Das Option Begleiter Objekt apply Methode von Nullable-Referenzen als Umwandlungsfunktion dient:

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

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

Das Option Objekt hat eine apply Methode, die genau das tut:

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