Java リフレクション メカニズムの原則: 1. どのクラスについても、このクラスのすべてのプロパティとメソッドを知ることができ、どのオブジェクトについても、そのメソッドのいずれかを呼び出すことができます; 2. すべてはオブジェクトであり、そしてクラス これもオブジェクトです; 3. [Animal.class] がハードディスク上にあるときはファイルですが、メモリにロードされるとオブジェクトとみなすことができます。
#Java リフレクション メカニズムの原理:
# 1. リフレクション メカニズムの概念:
は、実行状態では、どのクラスについても、そのクラスのすべてのプロパティとメソッドを知ることができ、また、どのオブジェクトについても、そのメソッドのいずれかを呼び出すことができることを意味します。この種の動的な情報の取得と、オブジェクトの動的呼び出し このメソッドの機能は Java 言語のリフレクション機構と呼ばれます2. リフレクション機構の応用:
動的プロキシ、スライスの生成指向プログラミング (メソッド Stack フレームの呼び出しの前後に追加).3. 反映メカニズムの原理:
1. まず明確な概念: すべてはオブジェクトです----クラスもオブジェクトです。2. 次に、クラスの内容を理解します: 修飾子コンストラクター フィールド メソッド。3. 次に、読み込みを理解します。 Animal.class はハードディスク上にあるファイルであり、メモリにロードされるとオブジェクト、java.lang.class のオブジェクトとみなされます。 Animal.class オブジェクトはインスタンス化中に生成されます。2 つのオブジェクトの違いは何ですか?以下に示すように、上記の Animal.class オブジェクトは java.lang.class のオブジェクトであり、次のオブジェクトは java.lang.class のオブジェクトです。 Animal.class のインスタンス化によって生成されたオブジェクト
4 . Animal.class が JVM にロードされるとき、JVM はメソッド、メンバーをどのように識別しますかAnimal.class に含まれる変数、構築メソッドなど?以下に示すように、Animal.class のインスタンス化されたオブジェクト内のメンバー変数 =red;メモリに読み込まれると、ファーcolor =null、インスタンス化時に赤に割り当てられます。 ##Animal.class の毛色属性は、java.lang.class のフィールドの属性値であり、毛皮color は java.lang.class のオブジェクトでもあります。これが、リフレクション メカニズムが動的に情報を取得し、動的にオブジェクト メソッドを呼び出す理由でもあります。
次の図は、Java.lang.class のメソッドです
## in Java .lang.classでは、毛色はFieldの属性値となっており、すべてのメソッド、 Animal のメンバー変数、コンストラクター、修飾子は java.lang.class の標準に従って記述されており、そうでない場合はコンパイル中にエラーが報告されます。放射メカニズムのコード
public class _14_ReflectTest07 { public static void main(String[] args) throws Exception{ //1.获取类 Class c = Class.forName("_12_CustomerService"); //获取某个特定的方法 //通过:方法名+形参列表 Method m = c.getDeclaredMethod("login",String.class,String.class); //通过反射机制执行login方法. Object o = c.newInstance(); //调用o对象的m方法,传递"admin""123"参数,方法的执行结果是retValue Object retValue = m.invoke(o, "admin","123"); System.out.println(retValue); //true } } public class _12_CustomerService { //登录 public boolean login(String name,String pwd){ if("admin".equals(name) && "123".equals(pwd)){ return true; } return false; } //退出 public void logout(){ System.out.println("系统已安全退出!"); } }
Java の基本チュートリアル
以上がJavaのリフレクションメカニズムの原理は何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。