使用reified类型参数,可以编写一个内联函数,该函数在运行时通过反射与type参数一起使用:
inline fun <reified T: Any> f() {
val clazz = T::class
// ...
}
Run Code Online (Sandbox Code Playgroud)
但是当f
使用一个本身就是泛型类的参数调用时,似乎无法通过以下方式获取其实际类型参数T::class
:
f<List<Integer>>() // T::class is just kotlin.collections.List
Run Code Online (Sandbox Code Playgroud)
有没有办法通过反射获得具体通用的实际类型参数?