I.はじめに反映
Javaプログラムは、すべてのオブジェクトは、2つのタイプがあります。コンパイル時の型と実行時の型、およびコンパイルして、オブジェクトの実行時の型が矛盾タイプであるために多くの時間。
例えば:私たちの変数またはObject型タイプのパラメータのいくつかが、オブジェクトのメソッドのプログラムん実行時の型が呼び出される必要があり、この方法は、それを解決する方法を、オブジェクトのメソッドではないでしょうか?
これらの問題を解決するために、プログラムが実行時に実際の情報オブジェクトとクラスを見つける必要がある、我々は二つの方法があります:
このケースでは、我々は直接裁判官にinstanceof演算子を使用することができ、その後、実行時型にキャスト演算子の変換を使用して、(1)は、最初のコンパイルにあり、実行時には、情報の特定の種類を十分に認識しています変数。
(2)第二には、実際のオブジェクトやクラスのための情報をコンパイルするときに、プログラムにのみ反映されなければならないオブジェクトとクラスに関する本当の情報を発見するために、実行時の情報に頼ることができます予測することは不可能です。
完成ローディングクラスの後、ヒープメモリ領域内のメソッドがクラスオブジェクトの種類(クラス、クラス・オブジェクトのいずれか一方のみ)を生成するため、オブジェクトは、完全な構造情報のクラスが含ま。私たちは、このオブジェクトを通してクラスの構造を見ることができます。このオブジェクトは、鏡のようなものです、このミラーを介してクラスの構造を参照してくださいので、私たちはイメージと呼ばれる:リフレクション。
第二に、反射:魂のフレーム設計
Frameworkは:半製品は、我々が使用するソフトウェアのために使用することができることです。ソフトウェアは、エンコーディングを簡素化するために、ベースフレーム上で開発することができます。
反射:このクラスの他のオブジェクトとパッケージの様々な構成要素は、これが反射あります。
メリット:
プログラムの動作中に(1)、これらのオブジェクトの操作。
(2)は、プロバイダ・スケーラビリティを切り離すことができます。
3つの段階でのJavaコード:
第三に、使用
反射型参照によって1、
図2に示すように、反射及び生成することによって、操作対象