如何在kotlin中通过反射获得参数名



java8有"-parameters"参数,传递给编译器,kotlin呢?正如我所看到的,kotlin编译器在参数中添加了带有参数名的@JetValueParameter注释,但是其中一个被禁用了。

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

当前的解决方案是使用JetValueParameter注释,尽管它已被弃用。

我们正在努力支持Kotlin反射中的参数名,这将很快可用。在这一点上,JetValueParameter将被丢弃,以支持新的API。

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

相关内容

  • 没有找到相关文章

最新更新