的可变参数的真实类型我正在使用反射来获取参数类型的方法,但有一些可变参数的问题。这里是我的代码:在斯卡拉,如何使用反射来获得方法
import reflect.runtime.universe._
case class C() {
def f(x: String*) = x
}
object Main {
def main(args: Array[String]): Unit = {
val c = C()
val r = runtimeMirror(getClass.getClassLoader).reflect(c)
val x = r.symbol.typeSignature.member(newTermName("f"))
val params = x.asMethod.paramss.head.map {
_.typeSignature.typeSymbol
}
for (param <- params) {
println(param)
}
}
}
结果是:
> class <repeated>
我怎样才能得到真正的类型String
?或者还有其他办法可以做到这一点吗?
感谢您的帮助,但在TypeSignature我找不到方法“typeArgs”,我使用Scala的2.10 – SleePy
在2.11中添加了此方法。请参阅http://stackoverflow.com/a/15597707/9204以获得2.10选择。 –
在2.11中工作!感谢您的帮助 – SleePy