Java反射メカニズムとは何ですか?反射メカニズムの概念

1924 ワード

Java反射メカニズムはJava言語の重要な特性であり、サーバプログラムとミドルウェアプログラムで広く運用されている.サーバ側では、お客様のリクエストに基づいて、オブジェクトの特定のメソッドを動的に呼び出す必要があることがよくあります.さらに、ORMミドルウェアの実装では、java反射メカニズムを用いて任意のJavaBeanのすべての属性を読み取るか、これらの属性に値を割り当てることができる.Java反射メカニズムは主に以下の機能を提供し,これらの機能はいずれもjava.lang.reflectパケットにある.
  • は、実行時に任意のオブジェクトが属するクラスを判断する.
  • 実行時に任意のクラスのオブジェクトを構築します.
  • は、実行時に任意のクラスが持つメンバー変数およびメソッドを判断する.
  • 実行時に任意のオブジェクトを呼び出す方法.
  • は、動的エージェントを生成する.
  • 周知のように、すべてのJavaクラスはObjectクラスを継承し、同じタイプのClassのオブジェクトを返すgetClass()メソッドがObjectクラスに定義されています.たとえば、次のコードの例を示します.
     
  • Class labelCls=label1.getClass();//Label 1はJLabelクラスのオブジェクト
  • ClassクラスのオブジェクトlabelClsを使用すると、labelClsオブジェクトの記述情報、JLabelクラスの情報、およびベースクラスObjectの情報にアクセスできます.表1に、反射によってアクセスできる情報を示します. 
    表1はアクセス可能な共通情報を反射する
    を選択します.
    アクセス方法
    戻り値のタイプ
    説明
    パッケージパス
    getPackage()
    Package オブジェクト
    クラスの保存パスの取得
    クラス名
    getName()
    Stringオブジェクト
    クラス名の取得
    継承クラス
    getSuperclass()
    Classオブジェクト
    クラス継承クラスの取得
    実装インタフェース
    getlnterfaces()
    Class型配列
    クラス実装のすべてのインタフェースを取得
    構築方法
    getConstructors()
    Constructor 型配列
    publicのすべての権限を取得する構築方法
    getDeclaredContxuectors()
    Constructor オブジェクト
    現在のオブジェクトのすべての構築方法を取得
    方法
    getMethods()
    Methods型配列
    publicのすべての権限を取得する方法
    getDeclaredMethods()
    Methods オブジェクト
    現在のオブジェクトを取得するすべての方法
    メンバー変数
    getFields()
    Field型配列
    publicのすべての権限を持つメンバー変数を取得
    getDeclareFileds()
    Fieldオブジェクト
    現在のオブジェクトのすべてのメンバー変数の取得
    内部クラス
    getClasses()
    Class型配列
    publicのすべての権限を持つ内部クラスを取得
    getDeclaredClasses()
    Class型配列
    すべての内部クラスを取得
    内部クラスの宣言クラス
    getDeclaringClass()
    Classオブジェクト
    クラスが内部クラスの場合、そのメンバークラスが返され、そうでない場合nullが返されます.
    表1に示すように、getFields()メソッドとgetMethods()メソッドを呼び出すと、publicに対する権限のあるフィールドと変数が順次取得され、スーパークラスから継承されたメンバーの実量とメソッドが含まれます.一方、getDeclareFields()とgetDeclareMethod()は、このクラスで定義されたメンバー変数とメソッドを取得するだけです.