2016-02-04 2 views
5

При этом:выражение типа Null является неподходящим для неявного преобразования

def myfunction(line: String): (Int, Option[DateTime], Option[Int]) = { 
    // do some stuff 
    (5, Option(null), Option(null)) 
    } 

я получаю следующее:

выражение типа Null является неподходящим для неявного преобразования

Я не уверен, как это исправить.

+1

'Int' не заселен' null'. – Lee

+0

Чтобы улучшить намек Ли: 'Int' будет отображаться в примитивном' Int' из JVM в случаях, где это применимо. Таким образом, невозможно использовать 'null' в любом случае для Int. – bash0r

+1

написание 'null' в Scala - это несколько анафема ... –

ответ

13

Option(null) имеет нижнюю границу Option[Null], где Null является нижним типом всех ссылочных типов. Int - тип значения, а не ссылочный тип. то есть вы не можете назначить null на номер Int. Поэтому вы не можете назначить Option[Null] на номер Option[Int].

Используйте вместо этого Option.empty[Int] или None.

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