Java のリフレクション機構を使用すると、コンパイル時以外の実行時 (Runtime) でクラス、インターフェイス、変数、メソッドの情報を確認できます。リフレクションを使用すると、実行時にオブジェクトをインスタンス化し、メソッドを呼び出し、get/set メソッドを呼び出して変数の値を取得することもできます。
Java リフレクション メカニズムは強力で非常に実用的です。たとえば、Butterfly Persistence のようにリフレクションを使用して Java オブジェクトをデータベース テーブルにマップしたり、Butterfly Container (翻訳者注: フレームワーク) と同様に、対応するオブジェクトが実行時にスクリプト内のステートメントをデータベース テーブルにマップしたりすることができます。元の作成者によって書かれたもの)は、その構成スクリプトを解析するときに実行します。
インターネット上にはすでに無数の Java リフレクション ガイドがありますが、Sun が発行したリフレクション ガイドを含むほとんどのガイドは、リフレクションの表面的な内容とその可能性を紹介するだけです。
この一連の記事では、他のガイドよりも Java リフレクション メカニズムを深く理解し、配列、アノテーション、ジェネリックス、動的プロキシ、クラス ダイナミクスの使用方法など、Java リフレクション メカニズムの基本原理を説明します。ロードとクラスのオーバーロードの実装。また、クラスからすべての get/set メソッドを読み取る、クラスのプライベート変数やプライベート メソッドにアクセスするなど、さらにユニークな関数を実装する方法も示します。この一連のガイドでは、実行時にどの汎用情報が有効になるかなど、リフレクションに関連しないいくつかの混乱する問題についても取り上げます。実際には、これは正しくありません。
この一連の記事で説明されているのは、Java 6 バージョンのリフレクション メカニズムです。詳細については、クリックして原文をお読みください。
1 | Java Reflectionチュートリアル |
2 | Java Reflectionガイド |
3 | Java Reflection:クラス |
4 | Java リフレクション: コンストラクター |
5 | Java リフレクション: 変数 |
6 | Java リフレクション: メソッド |
7 | Java リフレクション: ゲッターとセッター |
8 | Java リフレクション: プライベート変数とプライベート メソッド |
9 | Java リフレクション: アノテーション |
10 | Java リフレクション: ジェネリック |
11 | Java リフレクション: 配列 |
12 | Java リフレクション: 動的プロキシ |
13 | Java リフレクション: 動的クラスロードとリロード |
上記は Java Reflection チュートリアルの内容です。その他の関連コンテンツについては、PHP 中国語 Web サイト (www.php.cn) に注目してください。