在Kotlin中,我可以像这样从KType
获得KClass<*>
:
Int::class.createType()
kotlin.Int
如何反向执行并从代表KClass<Int>
的{{1}}获得KType
?
答案 0 :(得分:2)
您可以为此使用KType.classifier
:
val intType : KType = Int::class.createType()
val intClassifier : KClassifier? = intType.classifier
assertEquals(Int::class, intClassifier) // true
请注意,从1.3.40开始,您还可以(至少在JVM上)使用实验性的typeOf<Int>()
来获取KType
。您可能想看看1.3.40-announcement,看看这是否对您有用。
谈到JVM:在JVM上,您也可以使用KType.jvmErasure
来获取实际的类,就像注释中指出的marstran一样。