質問: { println("type=" + init.getClass) } } scala> (new MyVectorInt.test(3) type=class java.lang.Integer ``` Intを渡したのでIntegerじゃなくてIntになって欲しいのですが... よろしくお願い致します.
回答: JVM の仕組みに拠ります。 まず大前提として JVM では プリミティブ型 を型パラメータに指定できません。 そのため Java では型パラメータとして `int` を指定すると、 コンパイル時に自動的に、`int` に対応する非プリミティブ型である `Integer` に置き換えています。 JVM を用いる Scala においても、この前提は覆せません。 よって例示されたコードにおいて `A` (=`init.getClass`) は `Int` ではなく `Integer` となります。