0
1から4のパラメータを取るクラスがあります。彼らは常に弦です。関数に渡される引数の数に基づいてこのクラスのオブジェクトを作成したいと思います。コンストラクタを作成して、オブジェクトの配列をnewInstanceに直接渡す必要はありませんか?Scalaのリフレクションでパラメータコンストラクタを使用してクラスを作成する
NewInstanceWithReflection clazz = (NewInstanceWithReflection)Class.forName("NewInstanceWithReflection").newInstance();
Constructor constructor = NewInstanceWithReflection.class.getDeclaredConstructor(new Class[] {String.class});
NewInstanceWithReflection object1 = (NewInstanceWithReflection)clazz.newInstance(new Object[]{"StackOverFlow"});
このコードはsbtインタプリタに貼り付けられても動作しません。どんな助けもありがたい。
申し訳ありませんが、私は私のコード例を台無しにしました。 String引数の量が1から4まで変化する可能性があるので、 '.getDeclaredConstructor(classOf [String])'をスキップすることができるかどうかを知りたいだけでした。そして、argsの動的数を 'newInstance'メソッド。 – NNamed
いいえ、それは不可能です... 'newInstance'は' Constructor'オブジェクトのメソッドです。メソッドを呼び出すにはオブジェクトを持つ必要があります。したがって、オブジェクトインスタンスの取得を「スキップ」することは機能しません。 – Dima