具有多个参数的标量反射实例化类

问题描述 投票:1回答:1

假设我们有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 = ???

thanx

scala reflection instantiation currying
1个回答
0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.