2016-07-19 25 views
1

Dies ist eine wirklich einfache Frage, aber ich kann das Ding nicht finden, das ich überall suche:Scala: Gibt es einen Helfer, um eine Option [String] zu erhalten, wenn die Zeichenfolge null ist?

Gibt es irgendwo in Scala einen Helfer, der das macht?

def stringOption(string: String): Option[String] = 
     if (string == null) None else Some(string) 

Ich kopiere mehr oder weniger den gleichen Code überall, wo ich Java-Bibliotheken verwenden muss.

Es einfach den String in eine Option [String] konvertieren, wenn der String tatsächlich null ist. Viele Methoden in vielen Bibliotheken in Java geben normalerweise null zurück, wenn sie nichts zurückgeben können.

Dank

Antwort

5

einfach:

def stringOption(string: String): Option[String] = Option(string) 

Deshalb ist die Funktion ist nicht wirklich nützlich, da es dem Aufruf von Option.apply sofort entspricht.

+0

Ahhh \ o/Vielen Dank! – Cecile

+0

Froh, dass es geholfen hat! Gute Sache, die Sie gefragt haben :) –

+0

@Cecile vergessen Sie nicht, diese ausgezeichnete Antwort zu akzeptieren, wenn es korrekt ist –

1

@Jeans answer wird die Zeichenfolge null falls arbeiten. Wenn Sie auch sicherstellen möchten, ist es nicht leer, ein wenig Erweiterungsmethode kann

implicit class RichString(val s: String) extends AnyVal { 
    def toOpt(): Option[String] = Option(s).filter(_.trim.nonEmpty) 
} 

helfen Und jetzt tun Sie:

val option = "hello, world!".toOpt() 
+0

Ein besserer scala Weg wäre noch: '' def lift(): Option [String] = Option (en) .filter (_. Trim.nonEmpty) '' –

+0

@JeanLogeart Sieht definitiv besser aus. Danke für die Verbesserung! –

+0

Ja, aber ich teste wirklich nur das 'null'-Ding. Danke auch, weil es nützlich werden kann. – Cecile