kotlin - 将通用类型提取为变量的方法

标签 kotlin

所以我想这样做:

class Person<T: BaseType> {
     val clazz = T::class // That's what I'm trying to achieve
}
当然,我得到一个错误“不能使用'T'作为化类型参数。改为使用类。”

最佳答案

您无法执行此操作,但通常使用一种解决方法:

class Person<T : Any>(val clazz: KClass<T>)

inline fun <reified T : Any> Person(): Person<T> {
    return Person(T::class)
}
用法:
Person<String>()

关于kotlin - 将通用类型提取为变量的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64339840/

相关文章:

kotlin - 在 Kotlin 中推断通用类型的 Map

java - 如何将实现委托(delegate)给 Kotlin 中的可变属性?

android - ktor android本地http服务器抛出错误

java - 从 fragment 的参数获取数据

android - ViewModel 注入(inject)在 Dagger + Kotlin Android 上失败

android - 安装下载的 apk

Kotlin 惰性切片数组

android - UNRESOLVED_REFERENCE 未解析的引用 : isInitialized

java - 为 JSON 创建模型,其中键是 android 中的值

loops - Kotlin:如何以函数方式编写嵌套循环?