Kotlin: ¿Cómo puedo usar la reflexión en los packages?

¿Cómo puedo usar la reflexión en las funciones a nivel de package, miembros, etc.? Intentar acceder a javaClass o class no funciona, tampoco lo hace el package .

La reflexión sobre funciones o properties de nivel superior aún no se admite en Kotlin, pero está planificada para el futuro. Las únicas características que son compatibles en este momento le permiten get objects de reflexión de Kotlin correspondientes a los objects de reflexión de Java dados, lo que requiere que utilice la reflexión de Java de antemano:

  • kotlinFunction devuelve una instancia de kotlin.reflect.KFunction por una instancia de java.lang.reflect.Method o por una instancia de java.lang.reflect.Constructor
  • kotlinProperty devuelve una instancia de kotlin.reflect.KProperty mediante una instancia de java.lang.reflect.Field

Para usarlos, primero debe get el método o campo correspondiente con la reflexión de Java:

 package a import kotlin.reflect.jvm.* fun foo() {} fun reflectFoo() { // a.TestKt is the JVM class name for the file test.kt in the package a val c = Class.forName("a.TestKt") val m = c.getDeclanetworkingMethod("foo") val f = m.kotlinFunction!! // f is a KFunction instance, so you can now inspect its parameters, annotations, etc. println(f.name) println(f.returnType) ... } 
  • ¿Cómo obtengo una KProperty1 de una KProperty0?
  • Cómo acceder a los objects-miembros de una statement de object en kotlin
  • ¿Cómo puedo get el nombre de una propiedad de Kotlin?
  • Crear una nueva instancia de una KClass
  • La delegación de propiedad kotlin alias lanza Exception
  • Reflexión de Kotlin: compruebe si la propiedad tiene tipo
  • ¿Cómo puedo crear una instancia de un object usando valores de parameters de constructor pnetworkingeterminados en Kotlin?
  • Obteniendo la class actual
  • ¿Hay alguna manera de identificar una class de datos Kotlin de una class regular de Kotlin?
  • String.intern () devuelve diferentes valores en un controller JDBC
  • kotlin reflexión verificación nullable types