Java リフレクション メカニズムを通じてオブジェクトを作成する手順は次のとおりです。 ターゲット クラスをロードします。 Class.forName() メソッドを使用します。コンストラクターを取得します。 getDeclaredConstructor() メソッドを使用します。オブジェクトを作成します。 newInstance() メソッドを使用してパラメータを渡します。
#Java リフレクション メカニズムを使用してオブジェクトを作成する方法
はじめに
Javaリフレクション メカニズム プログラムが実行時にクラスのプロパティとメソッドを検査および変更できるようにします。便利な機能の 1 つは、リフレクションを使用してオブジェクトを作成する機能です。これは、特定のシナリオで非常に役立ちます。リフレクションによってオブジェクトを作成する手順
- クラスをロード:Class.forName()
メソッドを使用して、オブジェクトのロード オブジェクトが作成されるターゲット クラス。
- コンストラクターの取得: getDeclaredConstructor()
メソッドを使用して、指定されたパラメーター リストを持つクラス コンストラクターを取得します。
- オブジェクトの作成: newInstance()
メソッドを使用し、実際のパラメーターを渡して、このコンストラクターの新しいインスタンスを作成します。
コード例
import java.lang.reflect.Constructor; import java.lang.reflect.InvocationTargetException; class Person { private String name; private int age; public Person(String name, int age) { this.name = name; this.age = age; } public String getName() { return name; } public int getAge() { return age; } } public class ObjectCreationViaReflection { public static void main(String[] args) { Class<?> personClass = null; try { // 加载 Person 类 personClass = Class.forName("Person"); // 获取带两个参数的构造函数 Constructor<?> constructor = personClass.getDeclaredConstructor(String.class, int.class); // 使用构造函数创建对象 Person person = (Person) constructor.newInstance("John Doe", 30); // 访问创建对象的属性 System.out.println("Name: " + person.getName()); System.out.println("Age: " + person.getAge()); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (NoSuchMethodException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (InstantiationException e) { e.printStackTrace(); } catch (InvocationTargetException e) { e.printStackTrace(); } } }
実用的なケース
オブジェクトを作成するためのリフレクションの一般的な使用法は、構成を使用することです。ファイルを動的にロードしてクラスをインスタンス化します。たとえば、インスタンス化されるクラスの完全修飾名と対応するパラメータを含むプロパティ ファイルを構成できます。その後、アプリケーションはリフレクションを使用して構成ファイルから構成を読み取り、対応するオブジェクトを作成できます。注意事項
リフレクションを使用してオブジェクトを作成する場合、注意すべき点がいくつかあります。- リフレクションは、クラスを直接インスタンス化するよりも時間がかかります。実行時に追加の処理が必要になります。
- リフレクションはアクセス許可チェックをバイパスするため、プライベート メンバーがアクセスまたは変更される可能性があります。
- リフレクティブ コードは、理解や保守がより困難になる場合があります。
以上がJava リフレクション メカニズムを使用してオブジェクトを作成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

この記事では、Javaプロジェクト管理、自動化の構築、依存関係の解像度にMavenとGradleを使用して、アプローチと最適化戦略を比較して説明します。

この記事では、MavenやGradleなどのツールを使用して、適切なバージョン化と依存関係管理を使用して、カスタムJavaライブラリ(JARファイル)の作成と使用について説明します。

この記事では、カフェインとグアバキャッシュを使用してJavaでマルチレベルキャッシュを実装してアプリケーションのパフォーマンスを向上させています。セットアップ、統合、パフォーマンスの利点をカバーし、構成と立ち退きポリシー管理Best Pra

この記事では、キャッシュや怠zyなロードなどの高度な機能を備えたオブジェクトリレーショナルマッピングにJPAを使用することについて説明します。潜在的な落とし穴を強調しながら、パフォーマンスを最適化するためのセットアップ、エンティティマッピング、およびベストプラクティスをカバーしています。[159文字]

Javaのクラスロードには、ブートストラップ、拡張機能、およびアプリケーションクラスローダーを備えた階層システムを使用して、クラスの読み込み、リンク、および初期化が含まれます。親の委任モデルは、コアクラスが最初にロードされ、カスタムクラスのLOAに影響を与えることを保証します


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター
