相关疑难解决方法(0)

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

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

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))
Run Code Online (Sandbox Code Playgroud)

我现在需要获取参数类型和名称.

  • 参数名称是否存储在字节码中?如果答案是肯定的,如何访问它们?
  • 如果上面的回答是否定的,我们可以使用注释以某种方式存储名称吗?
  • 有人可以给出一个例子来阅读类型,以及如何使用它们.我只对具有String和/或Array[String]类型参数的函数感兴趣.

[编辑:] Java版本的解决方案也行.

[编辑:]注释似乎是一种方法.但是,Scala注释支持并不是那么好.相关的问题.

java reflection scala

4
推荐指数
2
解决办法
5010
查看次数

Scala使用字符串按名称设置函数参数

是否可以通过名称用字符串设置函数的参数.

例如:

给定:

def foo(a: String, b: String)
Run Code Online (Sandbox Code Playgroud)

我可以使用Map来动态调用此函数吗?

Map(("a", "bla"), ("b", "blub"))
Run Code Online (Sandbox Code Playgroud)

如果是这样,怎么样?

谢谢!

scala

1
推荐指数
1
解决办法
900
查看次数

标签 统计

scala ×2

java ×1

reflection ×1