Javaの反射を使用してクラスを作成する方法は?
Java リフレクションでは、クラスインスタンスは次の方法で作成できます。
- クラスのnewInstance()メソッドを使用する:無引数コンストラクタを呼び出してインスタンスを作成しますが、クラスにはアクセス可能な無引数コンストラクタがなければなりません。
- ConstructorクラスのnewInstance()メソッドを利用:任意のコンストラクタを呼び出してインスタンスを生成でき、引数として与えることができる。getConstructor()メソッドまたはgetDeclaredConstructor()メソッドでコンストラクタを参照する。
- ConstructorクラスのgetParameters()メソッドでコンストラクタのパラメータ型を取得し、リフレクションを利用して対応するパラメータインスタンスを作成後、ConstructorクラスのnewInstance()メソッドでインスタンスを生成します。
- Cloneableインターフェイスを実装し、clone()メソッドをオーバーライドしている場合は、Objectクラスのclone()メソッドを使用してインスタンスを作成できます。