¿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?>
  • Obtén la function por nombre dinámicamente en Kotlin
  • ¿Cómo puedo get una reference a Kotlin KClass por nombre cuando no se ejecuta en la JVM?
  • Los literales de class Kotlin con el lado izquierdo vacío aún no son compatibles.
  • Determinar si una instancia es una instancia de una class de datos
  • Kotlin: ¿Es aquí una forma inteligente de lanzar NotImplementedError para todos los methods de una class?
  • Reflexión de KFlin KFunction - get valores de parameters
  • Kotlin language obtiene class en time de ejecución
  • ¿Cómo obtengo el valor de una propiedad con reflection?
  • ¿Cómo get una class de time de ejecución de una variable en Kotlin?
  • ¿Hay alguna manera de identificar una class de datos Kotlin de una class regular de Kotlin?
  • ¿Cómo establecer el valor de propiedad delegada por reflexión en kotlin?