如何获取 Kotlin class(M12 中的 KClass)的声明函数?

How do I get the declared functions of a Kotlin class (KClass in M12)?

基本上就是这样。我想知道如何在给定 KClass 的情况下获得 functions/methods...看起来我只能遍历属性和扩展属性。

更新您现在可以获得 class 的函数,并在包 kotlin.reflect 中声明扩展:functions , declaredFunctions, memberFunctions, staticFunctions, 等等

Kotlin 反射目前正在进行中。我们计划在下一个里程碑发布 API 内省功能,大概是在今年夏天结束时。

同时,唯一的解决方法是使用 Java 反射来完成此任务。

Kotlin 反射在后来的里程碑(包括 1.0 测试版)中功能更加全面。

查看 Kotlin Reflection and specifically that of KClass 的概述文档。

例如,给定一个 class 你可以看到成员函数使用:

val functions = Someclass::class.declaredMemberFunctions

或属性:

val properties = Someclass::class.declaredMemberProperties

然后从 Java Class 到 KClass:

val kclz = this.javaClass.kotlin

另请参阅:Kotlin.reflect package API docs