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

  • ¿Por qué == e iguales producen resultados diferentes?
  • ¿Cómo establecer el valor de propiedad delegada por reflexión en kotlin?
  • ¿Cómo get una KClass de Array?
  • Obtén la function por nombre dinámicamente en Kotlin
  • ¿Puedo get una KFunction de una variable del tipo de function en Kotlin?
  • ¿Cómo puedo get el nombre de una propiedad de Kotlin?
  • Reflexión de Kotlin: compruebe si la propiedad tiene tipo
  • ¿Cómo hacer inferencia tipo Kotlin desde la reflexión KClass?
  • Crear una nueva instancia de una KClass
  • por qué SomeClass :: class es KClass <SomeClass> pero esta :: class es KClass <out SomeClass>
  • ¿El comstackdor de Kotlin siempre conserva los nombres de los parameters en bytecode?