ホームページ >Java >&#&チュートリアル >Java は名前だけを使用してクラスをインスタンス化できますか?
Java では名前によるクラスのインスタンス化は可能ですか?
クラスのインスタンス化を扱うとき、クラス名が次のようにしか知られていない状況が発生する可能性があります。文字列。これに対処するために、Java はこのタスクを達成するための 2 つのアプローチを提供します。
方法 1: 引数なしのコンストラクターを使用してインスタンス化する
引数なしのコンストラクターを持つクラスの場合、 Java では、Class.forName() メソッドを使用してクラス オブジェクトを取得し、 newInstance() メソッドを使用してオブジェクトを作成できます。 instance.
Class<?> clazz = Class.forName("java.util.Date"); Object date = clazz.newInstance();
方法 2: 引数なしコンストラクターの有無にかかわらずクラスを処理する
引数なしのクラスを含むすべてのシナリオをカバーする、より包括的なアプローチコンストラクターには、クラス オブジェクトにそのコンストラクターを問い合わせて、 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 サイトの他の関連記事を参照してください。