¿Cómo get los nombres de los parameters a través de la reflexión en kotlin?

java8 tiene el argumento "-parameters", pasado al comstackdor, ¿qué pasa con kotlin? Como puedo ver, el comstackdor de kotlin agrega la anotación @JetValueParameter con los nombres de param a los parameters, pero uno está privado.

Actualización : Reflection API ahora admite la obtención de nombres de parameters: KCallable.parameters le dará una list de parameters, y KParameter.name le dará el nombre.

La solución actual es usar la anotación JetValueParameter , aunque está en desuso.

Estamos trabajando en la compatibilidad con los nombres de los parameters en Kotlin reflection, que estará disponible en breve. En ese momento JetValueParameter se descartará a favor de la nueva API.

Me gustaría señalar que el comstackdor de Kotlin actualmente solo produce bytecode JVM compatible con Java 1.6, mientras que el atributo MethodParameters correspondiente a los -parameters de javac solo apareció en el bytecode de Java 1.8. Por lo tanto, aún no podrá get los nombres de los parameters de los methods de Kotlin a través de la reflexión de Java . Sin embargo, estamos considerando el soporte para bytecode target 1.8, por lo que probablemente funcione en el futuro.

  • Crear una nueva instancia de una KClass
  • El operador de Kotlin Reflection obtiene la implementación
  • ¿Cómo puedo crear una instancia de un object usando valores de parameters de constructor pnetworkingeterminados en Kotlin?
  • Cómo acceder a los objects-miembros de una statement de object en kotlin
  • ¿Puedo get una KFunction de una variable del tipo de function en Kotlin?
  • String.intern () devuelve diferentes valores en un controller JDBC
  • Usar reflexión para pasar y modificar una primitiva sin usar matriz
  • ¿Por qué == e iguales producen resultados diferentes?
  • ¿Puedo usar kotlin.reflect para get un valor de un campo
  • Interoperabilidad de reflexión de Kotlin con Java
  • ¿Cómo cambiar un campo de miembro con la reflexión de Kotlin?