たとえば、 がある場合、であるclass NewClass(val a: Seq[String])
型パラメーターの実際の型を取得できます。classOf[NewClass].getDeclaredFields.head.getGenericType.asInstanceOf[java.lang.reflect.ParameterizedType].getActualTypeArguments.head.asInstanceOf[Class[_]]
java.lang.String
ただし、型パラメーターが (Java では許可されていないが、Scala では許可されている) などのプリミティブ型である場合class NewClass(val a: Seq[Int])
、同じアプローチを使用しても のみが生成されjava.lang.Object
ます。それが実際にInt
一般的なものではないことを知る方法はありますjava.lang.Object
か?