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

时间:2015-06-25 21:19:45

标签: reflection kotlin

基本上就是这样。我想知道如何获得给定KClass的函数/方法......看起来我只能迭代属性和扩展属性。

2 个答案:

答案 0 :(得分:5)

更新您现在可以获取包含kotlin.reflect包中声明的扩展名的类的函数:functionsdeclaredFunctions,{{1} },memberFunctions

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

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

答案 1 :(得分:1)

Kotlin反思在后来的里程碑中更为全面,包括1.0测试版。

查看Kotlin Reflection的概述文档,特别是KClass的概述文档。

例如,给定一个类,您可以使用以下命令查看成员函数:

val functions = Someclass::class.declaredMemberFunctions

或属性:

val properties = Someclass::class.declaredMemberProperties

从Java类转到KClass:

val kclz = this.javaClass.kotlin

另请参阅:Kotlin.reflect package API docs