Java反射メカニズムとは何ですか?反射メカニズムの概念
1924 ワード
Java反射メカニズムはJava言語の重要な特性であり、サーバプログラムとミドルウェアプログラムで広く運用されている.サーバ側では、お客様のリクエストに基づいて、オブジェクトの特定のメソッドを動的に呼び出す必要があることがよくあります.さらに、ORMミドルウェアの実装では、java反射メカニズムを用いて任意のJavaBeanのすべての属性を読み取るか、これらの属性に値を割り当てることができる.Java反射メカニズムは主に以下の機能を提供し,これらの機能はいずれもは、実行時に任意のオブジェクトが属するクラスを判断する. 実行時に任意のクラスのオブジェクトを構築します. は、実行時に任意のクラスが持つメンバー変数およびメソッドを判断する. 実行時に任意のオブジェクトを呼び出す方法. は、動的エージェントを生成する. 周知のように、すべての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()は、このクラスで定義されたメンバー変数とメソッドを取得するだけです.
java.lang.reflect
パケットにある.
表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()は、このクラスで定義されたメンバー変数とメソッドを取得するだけです.