假设您有以下嵌套对象声明:
object Father {
val fathersField = "value"
object Child {
val childsField = 3.141592654
}
}
当我使用从
Father
开始的反射时,我只能找到字段fathersField
,但是找不到引用Child
实例的成员。是否可以通过反射找到那些内部对象声明?如果是这样,怎么办?
最佳答案
使用nestedClasses
中的 kotlin-reflect
:
Father::class.nestedClasses.find { it.simpleName == "Child" }
或者,按照@ s1m0nw1的建议,使用Java反射,并根据需要使用
Class
将KClass
转换回.kotlin
:Father::class.java.classes.first { it.simpleName == "Child" }.kotlin