我们可以使用反射来获取方法名,如下所示:
object Foo { def bar(name:String, age:Int) = {} }
val foo = Foo.getClass
val methods = foo.getMethods.filter(_.getName.startsWith("b"))
methods.foreach(m => println(m.getName))
我现在需要获取参数类型和名称。
- 参数名称是否存储在字节码中?如果答案是肯定的,如何访问它们?
- 如果上面的答案是否定的,我们可以使用注释以某种方式存储名称吗?
- 有人可以举个例子来阅读这些类型,以及如何使用它们吗?我只对具有
String
和/或Array[String]
类型参数的函数感兴趣。
[编辑:] Java 版本的解决方案也可以。
[编辑:]注释似乎是一种方法。但是,Scala 注释支持不是很好。 Related SO question .
最佳答案
我没试过,但是http://paranamer.codehaus.org/专为这项任务而设计。
关于java - 如何在 Scala/Java 方法中通过反射获取参数名称和类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7640617/