Java で、文字列からクラス名をリフレクションの方法
Javaでは、Class.forName()メソッドを使って文字列からクラスをリフレクションできます。
サンプルコードを以下に示します。
try {
String className = "com.example.MyClass"; // 要反射的类名
// 使用Class.forName()方法来加载类
Class<?> clazz = Class.forName(className);
// 可以使用clazz来实例化对象或调用类的方法
// 例如:
Object obj = clazz.newInstance();
// 或
// Method method = clazz.getMethod("methodName", parameterTypes);
// Object result = method.invoke(obj, arguments);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
『Class.forName()』メソッドを利用する際には、以下の点に注意する。
- com.example.MyClass
- クラス名が変数の場合、変数に正しいクラス名が入っていることを確認する必要があります。
- ClassNotFoundException
- インスタンス化例外
- 不許可アクセス例外
適宜に応じて適切な例外処理を実行してください。