如何通过kotlin中的反射获取参数名称?

时间:2015-05-24 16:39:51

标签: reflection kotlin

java8有“-parameters”参数,传递给编译器,kotlin怎么样? 正如我所看到的,kotlin编译器将带参数名称的@JetValueParameter注释添加到参数中,但其中一个被删除..

1 个答案:

答案 0 :(得分:8)

更新 Reflection API现在支持获取参数名称:KCallable.parameters将为您提供参数列表,KParameter.name将为您提供名称。

目前的解决方案是使用JetValueParameter注释,但不推荐使用。

我们正在努力支持Kotlin反射中的参数名称,这些名称很快就会出现。届时JetValueParameter将被弃用,以支持新的API。

我想要注意的是,Kotlin编译器目前只生成与Java 1.6兼容的JVM字节码,而与javac MethodParameters对应的-parameters属性只出现在Java 1.8的字节码中。因此,您仍然无法通过 Java反射获取Kotlin方法的参数名称。我们正在考虑对字节码目标1.8的支持,因此将来可能会有用。