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) ... } 
  • ¿Es seguro llamar a kclass.memberProperties en un object desconocido (Cualquiera)?
  • ¿El comstackdor de Kotlin siempre conserva los nombres de los parameters en bytecode?
  • Kotlin: isAssignableFrom y reflexiones del tipo de reflexión
  • ¿Cómo puedo get una reference a Kotlin KClass por nombre cuando no se ejecuta en la JVM?
  • Kotlin: ¿Cómo se accede a los methods get y setValue de un delegado?
  • ¿Cómo uso el object Kotlin por reflexión?
  • Configurar la reflexión de kotlin, class.java no funciona
  • String.intern () devuelve diferentes valores en un controller JDBC
  • por qué SomeClass :: class es KClass <SomeClass> pero esta :: class es KClass <out SomeClass>
  • Reflexión de KFlin KFunction - get valores de parameters
  • ¿Por qué == e iguales producen resultados diferentes?