如何在 Kotlin 中获取泛型参数的类?(reified, inline 和 TypeReference)
大家好!我最近开始用 Kotlin 写代码,遇到了一个在 Java 中很容易解决,但在 Kotlin 中让我头疼的问题。我需要在函数内部知道它被调用时使用的参数类型。例如,我有这样一段代码:
```kotlin
fun processList(items: List) {
// 如何在这里知道 T 是 String、Int 还是其他类型?
// 我想把类型输出到日志
println("Processing items of type: ${T::class}") // 错误!
}
```
在 Java 中,我会使用 Class 并显式传递它。但在 Kotlin 中,我想避免这样做,让 API 更简洁。我尝试过使用 T::class,但编译器提示:“Cannot use 'T' as reified type parameter. Use a class instead.” 我读过关于 reified 的内容,但没有完全理解它是如何工作的。另外,我需要这个函数是通用的,并且能处理任何类型,包括泛型被擦除的情况(例如 List)。如何在 Kotlin 中正确获取 T 的类?提前感谢!
<<>>