Kotlin:我如何使用包装上的反射?

我如何使用包级函数,成员等的思考? 尝试访问javaClassclass不起作用, package也没有。

One Solution collect form web for “Kotlin:我如何使用包装上的反射?”

Kotlin尚未支持对顶级功能或属性的反思,但计划在未来进行。 目前唯一支持的功能允许您获取与给定Java反射对象相对应的Kotlin反射对象,因此需要事先使用Java反射:

  • kotlinFunction通过java.lang.reflect.Method实例或java.lang.reflect.Method实例返回一个kotlin.reflect.KFunction实例
  • kotlinProperty通过java.lang.reflect.Field实例返回一个kotlin.reflect.KProperty实例

要使用它们,您必须首先通过Java反射获取相应的方法或字段:

 package a import kotlin.reflect.jvm.* fun foo() {} fun reflectFoo() { // a.TestKt is the JVM class name for the file test.kt in the package a val c = Class.forName("a.TestKt") val m = c.getDeclaredMethod("foo") val f = m.kotlinFunction!! // f is a KFunction instance, so you can now inspect its parameters, annotations, etc. println(f.name) println(f.returnType) ... } 
  • 如何避免Kotlin字段中的冗余空检查(FindBugs警告)
  • 从Java调用Kotlin - 错误:包演示不存在
  • 平台声明冲突与可比
  • 检查功能是否扩展
  • Spring REST,Kotin和默认的基本参数导致错误
  • 如何更改IntelliJ上的Kotlin编译器版本?
  • 类型不匹配,所需的节点,找到的字符串
  • 在Android lint检查LinkedHashMap.remove()的错误肯定
  • 使用Kotlin添加自定义的Twitter REST API查询
  • Kotlin访问修饰符
  • 只计算一次属性
  • Kotlin language will be the best programming language for Android.