Java クラスを名前だけでインスタンス化するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-11-25 03:49:11
オリジナル
977 人が閲覧しました

How Can I Instantiate Java Classes by Name Only?

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート