¿Puedo usar kotlin.reflect para get un valor de un campo

class A{ private var p:MyObj? = null } 

Parece que no puedo get p por A :: p , ¿o solo puedo getlo por java?

Mi versión de kotlin es

 ext.kotlin_version = '1.1.4-2' 

No puede getlo porque lo hace fuera de esa class cuando la propiedad es private . Usted tiene algunas opciones aquí:

  1. crear una function devolviendo this::p ( fun func(): KProperty0<MyObj?> = this::p )
  2. hacer que esa propiedad sea public
  3. usa la reflexión Esta es probablemente la opción más lenta, less eficiente y muy estrechamente acoplada. Úselo solo si no puede usar los demás. Puede usar el reflection de Kotlin de la siguiente manera: A::class.memberProperties.find { it.name == "p" } as KProperty1<A, MyObj?>
  • Kotlin: ¿Cómo se accede a los methods get y setValue de un delegado?
  • ¿Cómo establecer el valor de propiedad delegada por reflexión en kotlin?
  • Kotlin obtiene la anotación de campo siempre vacía
  • Reflexión de KFlin KFunction - get valores de parameters
  • Interoperabilidad de reflexión de Kotlin con Java
  • kotlin reflexión verificación nullable types
  • ¿Cómo get los nombres de los parameters a través de la reflexión en kotlin?
  • Usar reflexión para pasar y modificar una primitiva sin usar matriz
  • ¿Cómo uso el object Kotlin por reflexión?
  • Kotlin invoke getter / setter reflexivamente
  • Llamadas a function de logging usando reflexión en kotlin