¿Cómo get una class de time de ejecución de una variable en Kotlin?

Quiero get una reference a un KClass de time de ejecución de una variable. Revisé la documentation de las classs y la reflexión, pero la documentation parece explicar cómo get una reference estática a KClass (por ejemplo, String::class for String )

Necesito una KClass de time de ejecución de una variable. Esto no parece comstackr:

 fun test(x: Any) { val klazz = x::class } 

¿Cómo se obtiene la KClass de x en el ejemplo anterior?

Como se dijo en la reference , puede usar .javaClass.kotlin para get el token KClass de un object. Ejemplo:

 fun printKClass(x: Any) { val c = x.javaClass.kotlin println(c) } 

Para cualquier otra manipulación con KClass , también debe agregar la biblioteca kotlin-reflect como una dependencia, ya que la funcionalidad de reflexión se ha movido fuera de kotlin-stdlib .

x::class funciona bien siempre que tengas kotlin-reflect en tu classpath.

  • ¿Cómo puedo establecer una propiedad de un object complementario en Kotlin a través de la reflexión?
  • ¿El comstackdor de Kotlin siempre conserva los nombres de los parameters en bytecode?
  • por qué SomeClass :: class es KClass <SomeClass> pero esta :: class es KClass <out SomeClass>
  • Llamadas a function de logging usando reflexión en kotlin
  • ¿Cómo get los nombres de los parameters a través de la reflexión en kotlin?
  • ¿Cómo puedo crear una instancia de un object usando valores de parameters de constructor pnetworkingeterminados en Kotlin?
  • ¿Puedo get una KFunction de una variable del tipo de function en Kotlin?
  • Kotlin: ¿Cómo puedo usar la reflexión en los packages?
  • ¿Cómo uso el object Kotlin por reflexión?
  • Kotlin: comparar los valores de propiedad de diferentes objects objective con (fuera) reflexión
  • ¿Cómo establecer el valor de propiedad delegada por reflexión en kotlin?