clazz.asSubclass(asSubclassOfClass).getConstructor(String.class, XYZ.class).newInstance("howdy", XyzObj)
を使用します。
クラスにこのコンストラクタがあると仮定すると、それ以外の場合はNoSuchMethod例外が発生します。
clazz.asSubclass(asSubclassOfClass)
.getConstructor(String.class,XYZ.class)
.newInstance("howdy",XyzObj);
は、Javaに新しいですので、あなたはこれを行う際にボンネットの下に何が起こっているのかを理解することができるように私はあなたに簡単にを与えてみましょう。
あなたは以下のクラスがあるとします。
public class ParentClazz{
String someVar;
public ParentClazz(){
someVar="test";
}
public ParentClazz(String someVar){
System.out.println("I have been invoked");
this.someVar=someVar;
}
}
その後、あなたは次の主な方法があります:
public static void main(String[] args) throws ParseException, IllegalArgumentException, SecurityException, InstantiationException, IllegalAccessException, InvocationTargetException, NoSuchMethodException {
ParentClazz.class.asSubclass(ParentClazz.class).getConstructor(String.class).newInstance("howdy");
}
あなたがこれを実行する場合は、コンソール出力の印刷メッセージに気づくでしょう - 私が呼び出されたが。つまり、リフレクションを使用すると、ParentClazzのコンストラクタが呼び出されたことになります。シナリオはあなたが標準的なオブジェクト作成プロセスを使用していることができます場合は、同じことを行うことができます
:
ParentClazz clazz = new ParentClazz("howdy");
が、これはあなたがそれを理解するのに役立ちます願っています。
に関してparamsはargsは実際の引数の配列ですが、引数のクラス(複数も可) – Neil