Java で名前によるクラスのインスタンス化
Java には、文字列名を渡すことによってクラスをインスタンス化する 2 つのメソッドが用意されています。
1.引数なしのコンストラクターでのリフレクションの使用
ターゲット クラスに引数なしのコンストラクターがある場合は、Class.forName() メソッドを使用して Class オブジェクトを取得できます。次に、newInstance() メソッドを呼び出してインスタンスを作成します。
Class<?> clazz = Class.forName("java.util.Date"); Object date = clazz.newInstance();
2.引数なしコンストラクターの有無にかかわらずクラスでのリフレクションの使用
引数なしコンストラクターの有無にかかわらずクラスで機能するより包括的なアプローチについては、次の手順に従います。
Class<?> clazz = Class.forName("com.foo.MyClass"); Constructor<?> constructor = clazz.getConstructor(String.class, Integer.class); Object instance = constructor.newInstance("stringparam", 42);
注: どちらのアプローチにもリフレクションが含まれており、Java の例外処理を回避できるため、慎重に使用する必要があります。およびセキュリティ制約。
以上が文字列名のみを使用して Java クラスをインスタンス化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。