java - 如何在 Scala/Java 方法中通过反射获取参数名称和类型?

标签 java scala reflection

我们可以使用反射来获取方法名,如下所示:

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/

相关文章:

c# - 从多个程序集中检索实现接口(interface)的对象

java - 当我尝试使用自定义端口从 java 连接时,Docker 中的 RabbitMQ 抛出异常

java - 关于java中的HashMap实现

java - 滚动后 listView Items View 元素混合

java - JPOS ISO 8583 解析问题

Scala App 初始化顺序

java - 使用java反射获取包名

scala - map 中包含的列表中的平均值

scala - 如何在数据集中存储自定义对象?

Java 反射泛型 - 通过在编译时传递参数进行转换?