如何通过kotlin中的反射来获取参数名称?
java8有“-parameters”参数,传给编译器,kotlin呢? 正如我所看到的,kotlin编译器添加@参数名称的param参数注解@JetValueParameter,但一个是depricated ..
更新 : 反射API现在支持获取参数名称: KCallable.parameters
将给你一个参数列表, KParameter.name
会给你的名字。
目前的解决方案是使用JetValueParameter
注释,但不推荐使用。
我们正在努力支持Kotlin反射中的参数名称,这个名字很快就会出现。 此时, JetValueParameter
将被放弃以支持新的API。
我想指出的是,Kotlin编译器目前只生成与Java 1.6兼容的JVM字节码,而对应于javac -parameters
的MethodParameters
属性只出现在Java 1.8的字节码中。 所以,你仍然无法通过Java反射来获取Kotlin方法的参数名称。 我们正在考虑对字节码目标1.8的支持,所以在未来可能会有效。