Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reflection 通过Kotlin中的反射获取成员变量_Reflection_Kotlin - Fatal编程技术网

Reflection 通过Kotlin中的反射获取成员变量

Reflection 通过Kotlin中的反射获取成员变量,reflection,kotlin,Reflection,Kotlin,如果我在Kotlin上课: class Foo{ var x= null var y=null } 我想检查这些成员中的哪些是在运行时通过反射设置的。我可以迭代它们并在Java中检查null Foo foo= new Foo(); //this gives me the value of foo.x Foo.class.getDeclaredField("x").get(foo); 如何在Kotlin/Native中执行相同的操作?我知道我可以在Android中通过 Foo::clas

如果我在Kotlin上课:

class Foo{

var x= null
var y=null

}
我想检查这些成员中的哪些是在运行时通过反射设置的。我可以迭代它们并在Java中检查null

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)

但这在本机环境中不起作用。

我只是看一下文档,所以下面的内容可能有点错误,但您可以尝试一下:

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
}