Dlaczego prymitywne typy, takie jak Int, są usuwane z Object w Scali?
W Scali,
{ x: Option[Int] => x }
.getClass
.getMethod("apply", classOf[Option[_]])
.getGenericParameterTypes
zwracaArray(scala.Option<java.lang.Object>)
. Początkowo spodziewałem się zobaczyć zamiast tegoArray(scala.Option<scala.Int>)
, ale ja to widzęscala.Int
jest klasą wartości (rozciąga sięAnyVal
) „których instancje nie są reprezentowane jako obiekty przez podstawowy system hosta”.
Nadal nie rozumiem kasowaniaObject
, chociaż. Czy nie byłoby to o wiele bardziej przydatnejava.lang.Integer
?