Действительно, это немного удивительно, учитывая раздел 6.3 спецификации языка , как указано в билете huynhjl.
Поведение (null.asInstanceOf[Int]
дает вам 0
) надругая рука в некоторой степени согласуется со следующим наблюдением:
new Array[AnyRef](3) // -> Array(null, null, null)
new Array[Int ](3) // -> Array(0, 0, 0)
И, как таковое, может быть полезно в универсальном классе, когда вы хотите иметь «значение» для типа X
, даже если вы этого не делаете.не имеет конкретной доступной стоимости.Как и во втором наблюдении:
class X[A] {
var value: A = _
}
new X[Int].value // -> 0 (even if X is not specialized in A, hmmm....)