¿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.
- instancia :: class.java vs. instance.javaClass
- ¿Cómo puedo get una reference a un object Kotlin por su nombre?
- Kotlin: comparar los valores de propiedad de diferentes objects objective con (fuera) reflexión
- ¿Cómo obtengo las funciones declaradas de una class Kotlin (KClass en M12)?
- ¿El comstackdor de Kotlin siempre conserva los nombres de los parameters en bytecode?
- Reflexión de Kotlin: compruebe si la propiedad tiene tipo
- Kotlin invoke getter / setter reflexivamente
- Kotlin: doble operador de colon (reflexión) sobre
- ¿Cómo get una class de time de ejecución de una variable en Kotlin?
- java.lang.IllegalArgumentException: Callable espera 4 arguments, pero se proporcionaron 3
- Obteniendo la class actual
- Usar reflexión para pasar y modificar una primitiva sin usar matriz
- Cómo acceder a los objects-miembros de una statement de object en kotlin
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.
- SugarORM + Kotlin: list de reference no modificada "listAll"
- La installation del proyecto Kotlin para Android falla con INSTALL_FAILED_DEXOPT