0
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
は、デフォルトコンストラクタを選択することが離れているのですか?あなたは、単に複数のコンストラクタを開始するのにnewInstance
にのJavaリフレクションを使用することができます