scala反射实例化具有多个paramLists的类

时间:2017-06-05 12:15:00

标签: scala reflection instantiation currying

假设我们有A类

class A(val x: Any)(val y: Any)

然后我们想反复实例化x& y值:

def instantiate[T](aClass: Class[T], args: List[Any]): T = {
    val mirror = ru.runtimeMirror(aClass.getClassLoader)
    val classMirror = mirror.reflectClass(mirror.classSymbol(aClass))
    val constructorMirror = classMirror.reflectConstructor(getPrimaryConstructor(aClass))
    constructorMirror.apply(args: _*).asInstanceOf[T]
}

此方法适用于具有一个paramList的类以及如何在主构造函数中使用()()实例化类?我想我的实例化方法会有签名:

instantiate[T](aClass: Class[T], args: List[List[Any]]): T = ???

感谢名单

1 个答案:

答案 0 :(得分:0)

解决了!非常简单只需想象一下,只有一个参数列表是参数类A(x,y)的总和,而不是A(x)(y)