的可變參數的真實類型我正在使用反射來獲取參數類型的方法,但有一些可變參數的問題。這裏是我的代碼:在斯卡拉,如何使用反射來獲得方法
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