Почему метод Option orNull имеет этот лишний неявный аргумент?

Интересно, в чем причина (неявного ev: Null <:> здесь:

sealed abstract class Option[+A] extends Product with Serializable { 
  def orNull[A1 >: A](implicit ev: Null <:< A1): A1 = this getOrElse null
  ...
}

Разве

def orNull[A]: A = this getOrElse null

будет недостаточно, учитывая, что он даже не работает с такими типами значений, как

Option(1).orNull

, а

Option(1).getOrElse(null)

работает?

Вариант исходный код

8
задан giampaolo 13 February 2014 в 21:21
поделиться