reflection - 如何在 kotlin 中访问对象声明的对象成员

标签 reflection kotlin

假设您有以下嵌套对象声明:

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

关于reflection - 如何在 kotlin 中访问对象声明的对象成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45757517/

相关文章:

vb.net - 使用 VB.NET 按字符串名称动态调用属性

c# - 如何检查类型是子类型还是对象的类型?

android - Rx Java - 只有创建 View 层次结构的原始线程

java - Corda jar 启动 : Address already in use: bind error

android - Jetpack 用点圆组成画弧

java - 我如何获取父工具栏名称

Spring 数据 mongodb 和 kotlin

java - 如何运行外部类的所有方法

c# - 如何反射(reflection)没有参数的方法?

c# - 为什么 System.Type.IsPublic 返回为 false?