2016-07-19 9 views
1

Это очень простой вопрос, но я не могу найти то, что ищу где угодно:Scala: есть ли помощник, чтобы получить опцию [String], если строка равна null?

Есть ли помощник где-то в Scala, который это делает?

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

Я скопирую более или менее один и тот же код везде, где я должен использовать библиотеки Java.

Он просто преобразует String в Option [String], если строка фактически null. Многие методы во многих библиотеках Java, как правило, возвращают null, когда он ничего не может вернуть.

Благодаря

ответ

5

Просто:

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

Поэтому функция на самом деле не очень полезен, поскольку он эквивалентен вызову Option.apply.

+0

Ahhh \ o/Большое спасибо! – Cecile

+0

Рад, что это помогло! Хорошая вещь, которую вы задали :) –

+0

@Cecile не забудьте принять этот отличный ответ, если он правильный –

1

@Jeans answer будет работать в случае, если строка null. Если вы хотите, чтобы убедиться, что это не пустой, немного метод расширения может помочь

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

А теперь вы:

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

Лучшим способом scala еще не было: '' def lift(): Option [String] = Опции .filter (_. Trim.nonEmpty) '' –

+0

@JeanLogeart Определенно выглядит лучше. Спасибо за улучшение! –

+0

Да, но я действительно тестирую только «нуль». Спасибо также потому, что это может стать полезным. – Cecile

 Смежные вопросы

  • Нет связанных вопросов^_^