¿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.

  • Crear una nueva instancia de una KClass
  • java.lang.IllegalArgumentException: Callable espera 4 arguments, pero se proporcionaron 3
  • Los literales de class Kotlin con el lado izquierdo vacío aún no son compatibles.
  • ¿El comstackdor de Kotlin siempre conserva los nombres de los parameters en bytecode?
  • ¿Cómo puedo get una reference a Kotlin KClass por nombre cuando no se ejecuta en la JVM?
  • kotlin reflexión verificación nullable types
  • instancia :: class.java vs. instance.javaClass
  • ¿Cómo get los nombres de los parameters a través de la reflexión en kotlin?
  • ¿Cómo obtengo una KProperty1 de una KProperty0?
  • ¿Cómo get un KType en Kotlin?
  • Determinar si una instancia es una instancia de una class de datos