Kotlin: equivalente à getClass () para a KClass
em Java podemos resolver a classe de uma variável através {[[0]} como something.getClass()
. Em Kotlin eu estou ciente de something.javaClass
que é bom, mas eu quero ser capaz de obter o KClass
de uma forma semelhante. Já vi a sintaxe Something::class
mas não é disto que preciso. Preciso da classe K de uma variável. Essa funcionalidade existe?
45
2 answers
70
Author: Alexander Udalov, 2017-06-19 12:48:36
EDIT:veja os comentários, abaixo, e Responda de Alexander, acima. Este conselho foi originalmente para o Kotlin 1.0 e parece agora obsoleto.
Uma vez que a linguagem não suporta uma maneira direta de obter isso ainda, considere definir um método de extensão para agora .
fun<T: Any> T.getClass(): KClass<T> {
return javaClass.kotlin
}
val test = 0
println("Kotlin type: ${test.getClass()}")
Ou, se preferir uma propriedade:
val<T: Any> T.kClass: KClass<T>
get() = javaClass.kotlin
val test = 0
println("Kotlin type: ${test.kClass}")
9
Author: dherman, 2018-07-10 22:35:14