Java で名前によるクラスのインスタンス化
状況によっては、名前のみを使用してクラスをインスタンス化する必要があります。このガイドでは、Java でこれを実現する 2 つの方法を説明します。
方法 1: 引数なしのコンストラクターを持つクラスの場合
クラスが引数なしのコンストラクターを持っていると仮定すると、 Class.forName() を利用して、クラスを表す Class オブジェクトを取得します。次に、 newInstance() メソッドを使用してインスタンスを作成します。この方法は、Java のチェック例外を回避する可能性があるため、一般的に推奨されないことに注意してください。
例:
Class<?> clazz = Class.forName("java.util.Date"); Object date = clazz.newInstance();
方法 2: 一般的なアプローチ
の場合引数なしのコンストラクターの有無にかかわらず、クラス オブジェクトから Constructor オブジェクトを取得するというより安全なアプローチを利用します。
例:
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 サイトの他の関連記事を参照してください。