我可以通过静态反射获取案例类的默认构造函数:
val symbol = currentMirror.classSymbol(myObj.getClass).typeSignature.typeSymbol.asClass
val ctor = symbol.primaryConstructor
从这里我可以做一些漂亮的事情,例如内省其字段的详细信息等。但是我现在如何调用构造函数方法?我可以深入研究 myObj 的类,但如果它有多个构造函数,是否有一种简单的方法将正确的构造函数与我从 PrimaryConstructor 获得的构造函数相匹配?
您可以使用reflectConstructor
类镜像上的方法:
val classMirror = currentMirror.reflectClass(typeOf[Foo].typeSymbol.asClass)
classMirror.reflectConstructor(ctor.asMethod).apply(2, "bar").asInstanceOf[Foo]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)