wake-up-neo.net

Rückgabe der Rückgabe-Methode in Java mit Option in Scala?

Angenommen, ich habe eine Methode session.get(str: String): String, aber Sie wissen nicht, ob Sie eine Zeichenfolge oder eine Null zurückgeben, da sie von Java stammt. 

Gibt es eine einfachere Möglichkeit, dies in Scala anstelle von session.get("foo") == null zu behandeln? Vielleicht gilt etwas Magie wie ToOption(session.get("foo")) und dann kann ich es wie Scala behandeln 

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

Die Option-Methode des apply-Companion-Objekts dient als Konvertierungsfunktion aus nullfähigen Referenzen:

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

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

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

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

Beachten Sie, dass es bei der Arbeit mit Java-Objekten nicht wie erwartet funktioniert:

val nullValueInteger : Java.lang.Integer = null
val option: Option[Int] = Option(nullValueInteger)
println(option)  // Doesn't work - zero value on conversion

val nullStringValue : String = null
val optionString: Option[String] = Option(nullStringValue)
println(optionString) // Works - None value
0
DekelM