Kotlinのreified型パラメータは、型パラメータの消去を防ぎ、実行時に型パラメータを知ることを可能にします。Kotlin Reified型パラメータは、関数本体に型パラメータとして使用できません。
inline fun <reified T> isA(value: Any) = value is T
をしかし、私はそれが消去タイプであるというメッセージを取得する代わりに、スタンドアロンの型パラメータとして「T」を使用しようとすると、これは次のコードをコンパイルし、期待通りに実行することができます。これは例示を目的とするものであり、次のコードによって実証さだけ:
inline fun <reified T> isListOfA(name: String): Boolean {
val candidate = Class.forName(name)
return candidate is List<T>
}
が、これは技術的な制限によるものですか?もしそうなら、その限界は何ですか?
これは身元確認の問題ではありません。あなたは 'canditate is List'をすることさえできません。 –