Java のリフレクションを使用してオブジェクトを作成する方法
Java リフレクションを用いたオブジェクト生成の手順は次のとおりです。
- クラスオブジェクトを取得する: まず、オブジェクトを作成するクラスのクラスオブジェクトを取得する必要があります。クラス名から直接 Class.forName(“クラスの完全修飾名”) メソッドを呼び出して取得することも、オブジェクトの getClass() メソッドから取得することもできます。
- ClassオブジェクトのnewInstance()メソッドを利用してオブジェクトを作成する:ClassオブジェクトのnewInstance()メソッドは、デフォルトコンストラクタを用いてオブジェクトを作成します。もし、デフォルトコンストラクタがクラス内に存在しない場合、メソッドはInstantiationException例外をthrowします。
次に例を示します。
public class Example {
private String message;
public Example() {
this.message = "Hello, World!";
}
public void printMessage() {
System.out.println(message);
}
}
public class Main {
public static void main(String[] args) {
try {
// 获取Example类的Class对象
Class<?> clazz = Class.forName("Example");
// 调用Class对象的newInstance()方法创建对象
Example example = (Example) clazz.newInstance();
// 调用对象的方法
example.printMessage();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
}
コードを実行すると、「Hello, World!」と出力されます。