gpt4 book ai didi

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

转载 作者:搜寻专家 更新时间:2023-11-01 01:28:57 25 4
gpt4 key购买 nike

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

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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com