Мейбс хороший шаблон для Scala?
Вопрос
Некоторое время я изо всех сил пытался интегрировать SCALA с методами Java, которые могут вернуть нулю. Я придумал следующую утилиту, которая много помогает:
// produce an Option, nulls become None
object Maybe {
def apply[T](t:T) = if (t==null) None else Some(t)
}
Maybe(javaClass.getResultCouldBeNull()).map( result => doSomeWork(result) )
У меня есть несколько вопросов об этом решении:
- Есть ли лучший или более стандартный шаблон для использования?
- Я дублирую то, что уже существует?
- Есть ли эта функциональность скрыта голчаса?
Решение
Встроенный встроенный Вариант это то, что вы устанавливаете, чтобы переинтересовать.
В таком случае:
scala> val sOpt: Option[String] = Option(null)
sOpt: Option[String] = None
Другие советы
ПОЧЕМУ БЫТЬ ОБРАЩЕНО ОБЪЯВИТЬ ОБЪЯВИТЬ ОТДЕЛИТЬСЯ? Это просто функция, поэтому вам не нужно реализовать ее как объект, который выглядит как функция.
object MyUtilities{
// a whole bunch of other utilities that you use all over can also be put in this class.
def maybe[T](t:T) = if (t==null) None else Some(t)
}
Не связан с StackOverflow