Kotlin - KClass <*> от KType - PullRequest
       1

Kotlin - KClass <*> от KType

2 голосов
/ 20 июня 2019

В Kotlin я могу получить KType из KClass<*>, например, так:

Int::class.createType()

kotlin.Int

Как мне сделать обратное и получить KClass<Int> из KType, представляющего kotlin.Int?

1 Ответ

2 голосов
/ 20 июня 2019

Вы можете использовать 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-объявление , чтобы узнать, может ли это быть полезным для вас.

Кстати, о JVM: на JVM вы также можете использовать KType.jvmErasure для получения фактического класса, также указанного в комментарии marstran .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...