我正在尝试找到与给定 var-args 参数匹配的任意类的构造函数。不幸的是,由于我很难理解 Scala 的反射 API,因此我的进展很小。在检索所有可用构造函数的列表后,我无法识别与可用参数匹配的构造函数。
private lazy val `class` = mirror.staticClass( "myPackage.myClass" )
protected def reflect( arguments: Any* ): T =
{
val constructor = `class`
.toType
.members
.collect{ case method: MethodSymbol if method.isConstructor => method }
.collectFirst[MethodSymbol]{ case _ => null } // ???
.getOrElse( throw new RuntimeException( "No valid constructor given" ) )
mirror
.reflectClass( `class` )
.reflectConstructor( constructor )
.apply( arguments: _* )
.asInstanceOf[T]
}