具体化型パラメータ (reified type parameters) Java の頃から変わっていませんが、ジェネリクスの型引数で指定した型情報は、コンパイル時にイレイジャ (erasure) によって削除されます。 つまり、実行時にその型情報を参照することはできません。 これは、JVM の仕組みによるもので、erased at runtime と呼ばれたりします。 Kotlin では、reified type parameter という機能を使うことで、型引数で指定した型情報を残すことができます。 例えば、次のように、いろいろな型の要素を含んだリストから、指定した型の要素だけを取り出すための Generic 関数 filterByType() を作りたいとします。 val list = listOf(1, "A", 2, "B") val intList = filterByType<