2017-09-11 3 views

Répondre

1

Vous ne pouvez pas l'obtenir parce que vous le faites en dehors de cette classe lorsque la propriété est private. Vous avez quelques options:

  1. créer une fonction de retour this::p (fun func(): KProperty0<MyObj?> = this::p)
  2. font que la propriété public
  3. réflexion d'utilisation. Il s'agit probablement de l'option la plus lente, la moins performante et la plus étroitement couplée. Utilisez-le seulement si vous ne pouvez pas utiliser les autres. Vous pouvez utiliser la réflexion de Kotlin comme suit: A::class.memberProperties.find { it.name == "p" } as KProperty1<A, MyObj?>
+0

Je veux juste utiliser reflect dans le test unitaire seulement. C'est pourquoi mon problème contient reflect.And vous allez ajouter ** apply {isAccessible = true} ** et ** compiler "org.jetbrains.kotlin: kotlin-reflect: $ kotlin_version" **, de sorte que je vais accepter votre répondre pour aider quelqu'un d'autre. – user2545386