Java でクラス名からオブジェクト インスタンスを作成する
文字列名によってクラスをインスタンス化すると、動的にロードおよび作成するための強力なメカニズムが提供されます。オブジェクト。 Java では、このプロセスには 2 つの主要なメソッドが含まれます。
方法 1: 引数なしのコンストラクターを持つクラスの場合
引数なしのコンストラクター (コンストラクター) を持つクラスの場合パラメーターなし) の場合は、Class.forName() メソッドを使用して Class オブジェクトを取得できます。その後、この Class オブジェクトで newInstance() メソッドを呼び出して、クラスのインスタンスを作成できます。
Class<?> clazz = Class.forName("java.util.Date"); Object date = clazz.newInstance();
方法 2: 引数なしのコンストラクターがあるクラスまたはないクラスの場合
引数なしのコンストラクターの有無にかかわらず、クラスに対応する別のアプローチには、クラスの Constructor オブジェクトを取得することが含まれますそして、それに対して newInstance() メソッドを呼び出します。このアプローチでは、クラスが引数なしのコンストラクターを持つ必要はありません。
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 サイトの他の関連記事を参照してください。