2015-02-24 38 views
3

我可以通過靜態反射正是如此獲得的情況下,類的默認構造函數:調用反映情況類的構造函數

val symbol = currentMirror.classSymbol(myObj.getClass).typeSignature.typeSymbol.asClass 
val ctor = symbol.primaryConstructor 

在這裏,我可以做的漂亮之類的東西它的領域,等等。但是如何反思細節我現在可以調用構造方法嗎?我可以深入到myObj的類中,但如果它有多個構造函數,是否有一種直接的方法將正確的構造函數與從primaryConstructor獲得的構造函數進行匹配?

回答

3

您可以使用類鏡reflectConstructor方法:

val classMirror = currentMirror.reflectClass(typeOf[Foo].typeSymbol.asClass) 
classMirror.reflectConstructor(ctor.asMethod).apply(2, "bar").asInstanceOf[Foo] 
相關問題