ホームページ > Java > &#&チュートリアル > クラス名のみを使用して Java オブジェクト インスタンスを作成するにはどうすればよいですか?

クラス名のみを使用して Java オブジェクト インスタンスを作成するにはどうすればよいですか?

Patricia Arquette
リリース: 2024-11-26 07:09:17
オリジナル
753 人が閲覧しました

How Can I Create a Java Object Instance Using Only Its Class Name?

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 プログラムがクラスのメタデータを調べて操作できるようにする強力な手法です。ただし、次のような潜在的な例外を処理することが重要です。

  • JVM が指定されたクラスをロードできない
  • 適切なコンストラクターが欠落しているクラス
  • コンストラクターによってスローされた例外
  • セキュリティマネージャーによるリフレクションの制限

以上がクラス名のみを使用して Java オブジェクト インスタンスを作成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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