我可以通过T来创建KType吗?

我使用KClass<>泛型来捕获KClass<>

 inline fun <reified T> register(generator: Generator<T>) { register(T::class, generator) } 

KType有一些额外的属性,这对我来说很有趣,比如可空性。 我想写这样的东西来取代KType

 inline fun <reified T> register(generator: Generator<T>) { register(T::ktype, generator) // Doesn't compile } ... register<String?>(myGen) // The nullability of String? is captured 

有没有办法抓取KClass<>而不是KClass<>

提前致谢。

不,到目前为止,这是无法完成的,Kotlin问题跟踪器中存在一个问题 ,目前标记为待讨论

但是,您可以使用子类化从更具体的类型参数获取更多的KClass<T> ,特别是使用称为超级类型的标记的技术 。