Reflection 带参数的newInstance

Reflection 带参数的newInstance,reflection,scala,Reflection,Scala,有没有办法“动态地”/reflective/etc在Scala中创建一个带有参数的类的新实例 例如,类似于: class C(x: String) manifest[C].erasure.newInstance("string") 但这就是问题所在。(请放心,这也是在比这个简化示例更有意义的上下文中使用的!)erasure属于java.lang.Class,因此您可以使用构造函数(无论如何,在这个简单的例子中您不需要清单-您可以使用classOf[C])。与直接调用newinstance不同,

有没有办法“动态地”/reflective/etc在Scala中创建一个带有参数的类的新实例

例如,类似于:

class C(x: String)
manifest[C].erasure.newInstance("string")

但这就是问题所在。(请放心,这也是在比这个简化示例更有意义的上下文中使用的!)

erasure
属于
java.lang.Class
,因此您可以使用构造函数(无论如何,在这个简单的例子中您不需要清单-您可以使用
classOf[C]
)。与直接调用
newinstance
不同,您可以首先使用
getConstructor
方法(使用相应的参数类型)找到相应的构造函数,然后只需对其调用
newinstance

classOf[C].getConstructor(classOf[String]).newInstance("string")