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

  • Determinar si una instancia es una instancia de una class de datos
  • ¿Por qué == e iguales producen resultados diferentes?
  • Quiero detectar si una class JVM es una class Kotlin o no
  • ¿Cómo get una KClass de Array?
  • Kotlin invoke getter / setter reflexivamente
  • La igualdad de class Kotlin falla
  • Kotlin: comparar los valores de propiedad de diferentes objects objective con (fuera) reflexión
  • ¿Cómo get un KType en Kotlin?
  • Los literales de class Kotlin con el lado izquierdo vacío aún no son compatibles.
  • Crear una nueva instancia de una KClass
  • Llamadas a function de logging usando reflexión en kotlin