加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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

发布时间:2020-12-16 18:19:50 所属栏目:安全 来源:网络整理
导读:我们可以使用反射来获取方法名称,如下所示: object Foo { def bar(name:String,age:Int) = {} } val foo = Foo.getClassval methods = foo.getMethods.filter(_.getName.startsWith("b"))methods.foreach(m = println(m.getName)) 我现在需要获取参数类型和
我们可以使用反射来获取方法名称,如下所示:

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/是专为此任务而设计的.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读