Получение переменных-членов через отражение в Kotlin - PullRequest
0 голосов
/ 22 октября 2018

Если у меня есть класс в Котлине:

class Foo{

var x= null
var y=null

}

Я хочу проверить, какие из этих членов были установлены во время выполнения, путем отражения.Я могу перебрать их и проверить на ноль в Java.

Foo foo= new Foo();

//this gives me the value of foo.x
Foo.class.getDeclaredField("x").get(foo);

Как я могу сделать то же самое в Kotlin / Native?Я знаю, что могу добиться этого в Android

Foo::class.java.getDeclaredField("x").get(foo)

Но в родной среде это не работает.

1 Ответ

0 голосов
/ 22 октября 2018

Я просто иду по документации, поэтому приведенное ниже может быть немного не так, но вы можете попробовать это:

val prop : KCallable = Foo::class.members.firstOrNull { it.name == "x" }
if (prop != null) {
   val xValue : Int? = prop.call(object)
    //you have to declare the type of the xValue
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...