如果我在Kotlin上课:
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)
但这在本机环境中不起作用。
答案 0 :(得分:1)
我只是在阅读文档,因此以下内容可能有误,但是您可以尝试以下方法:
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
}