我有一个用2个构造函数创建的类。
我想仅使用默认构造函数创建此类的实例。
class A (arg1:Int,Arg2:String){
def this(arg1:Int){
this(arg1,"hello")
}
}
这是我尝试做的事情:
val tpe = ru.typeOf[A]
val mirror = ru.runtimeMirror(getClass.getClassLoader)
val clsSym = tpe.typeSymbol.asClass
val clsMirror = mirror.reflectClass(clsSym)
val ctorSym = tpe.decl(ru.termNames.CONSTRUCTOR).asMethod
val method = clsMirror.reflectConstructor(ctorSym)
val newInstance = method(args:_*)
我收到以下错误:
constructor ExampleWithCamelCase encapsulates multiple overloaded
alternatives and cannot be treated as a method. Consider invoking
<offending symbol>.asTerm.alternatives` and manually picking the required method
是否可以选择默认构造函数?
答案 0 :(得分:1)
classOf[A].getConstructors()(1).newInstance(1)
您只需使用 Java 反映到newInstance
即可启动多个构造函数。