¿Cómo obtengo las funciones declaradas de una class Kotlin (KClass en M12)?

Básicamente eso. Me pregunto cómo get las funciones / methods que se le dan a una KClass … parece que solo puedo iterar sobre las properties y properties de la extensión.

Actualización : ahora puede get funciones de una class con extensiones declaradas en el package kotlin.reflect : functions , functions declanetworkingFunctions , functions memberFunctions , staticFunctions , etc.

La reflexión de Kotlin es un trabajo en progreso en este momento. Planeamos enviar API para funciones de introspección en el próximo hito, presumiblemente a fines de este verano.

Mientras tanto, la única solución es usar la reflexión de Java para esta tarea.

La reflexión de Kotlin está más completa en los últimos hitos que incluyen las 1.0 betas.

Vea la documentation general para Kotlin Reflection y específicamente la de KClass .

Por ejemplo, dada una class, puede ver las funciones de miembro usando:

 val functions = Someclass::class.declanetworkingMemberFunctions 

o properties:

 val properties = Someclass::class.declanetworkingMemberProperties 

Y para pasar de una class Java a una class K:

 val kclz = this.javaClass.kotlin 

Ver también: Kotlin.reflect packages API docs

  • ¿Puedo get una KFunction de una variable del tipo de function en Kotlin?
  • ¿Cómo puedo establecer una propiedad de un object complementario en Kotlin a través de la reflexión?
  • String.intern () devuelve diferentes valores en un controller JDBC
  • Kotlin invoke getter / setter reflexivamente
  • Reflexión de KFlin KFunction - get valores de parameters
  • ¿Cómo puedo crear una instancia de un object usando valores de parameters de constructor pnetworkingeterminados en Kotlin?
  • Crear una nueva instancia de una KClass
  • Kotlin: ¿Cómo se accede a los methods get y setValue de un delegado?
  • ¿Cómo puedo get una reference a Kotlin KClass por nombre cuando no se ejecuta en la JVM?
  • Determinar si una instancia es una instancia de una class de datos
  • ¿El comstackdor de Kotlin siempre conserva los nombres de los parameters en bytecode?