Kotlin: Equivalente de getClass () para KClass

En Java podemos resolver la class de una variable a través de getClass() como something.getClass() . En Kotlin estoy al tanto de something.javaClass que es agradable, pero quiero poder get KClass de manera similar. He visto la syntax de la Something::class pero esto no es lo que necesito. Necesito get la KClass de una variable. ¿Existe tal funcionalidad?

La forma más fácil de lograr esto desde Kotlin 1.1 es la syntax de reference de class :

 something::class 

Si usa Kotlin 1.0, puede convertir la class Java obtenida en una instancia de KClass llamando a la propiedad de extensión .kotlin :

 something.javaClass.kotlin 

Dado que el lenguaje no admite una forma directa de get esto todavía, considere la posibilidad de definir un método de extensión por el momento .

 fun<T: Any> T.getClass(): KClass<T> { return javaClass.kotlin } val test = 0 println("Kotlin type: ${test.getClass()}") 

O, si prefiere una propiedad:

 val<T: Any> T.kClass: KClass<T> get() = javaClass.kotlin val test = 0 println("Kotlin type: ${test.kClass}") 
  • NPE en constructor y superclass
  • Acerca de Kotlin y funciones
  • Kotlin no selecciona los identificadores de resources
  • Usando Kovenant de Kotlin sigo entrando en código repetitivo usando Diferido
  • Permisosdispatcher y múltiples @ NeedsPermission con kotlin
  • Ejecute Klotlin REPL desde el context de mi proyecto Maven?
  • Aplicación Kotlin con plugin de aplicación Gradle
  • java.lang.NoClassDefFoundError en Kotlin
  • Kotlin: ¿Podemos usar @Subscribe de EventBus (GreenRobot) en Kotlin?
  • MutableLiveData con Kotlin Multiple Layler Genérico no funciona
  • Extender apropiadamente una class de Widget usando Kotlin