検索
ホームページJava&#&ベースJavaのリフレクションメカニズムの原理は何ですか

Java リフレクション メカニズムの原則: 1. どのクラスについても、このクラスのすべてのプロパティとメソッドを知ることができ、どのオブジェクトについても、そのメソッドのいずれかを呼び出すことができます; 2. すべてはオブジェクトであり、そしてクラス これもオブジェクトです; 3. [Animal.class] がハードディスク上にあるときはファイルですが、メモリにロードされるとオブジェクトとみなすことができます。

Javaのリフレクションメカニズムの原理は何ですか

#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 のインスタンス化によって生成されたオブジェクト

Javaのリフレクションメカニズムの原理は何ですか

4 . Animal.class が JVM にロードされるとき、JVM はメソッド、メンバーをどのように識別しますかAnimal.class に含まれる変数、構築メソッドなど?

以下に示すように、Animal.class のインスタンス化されたオブジェクト内のメンバー変数 =red;

メモリに読み込まれると、ファーcolor =null、インスタンス化時に赤に割り当てられます。

##Animal.class の毛色属性は、java.lang.class のフィールドの属性値であり、毛皮color は java.lang.class のオブジェクトでもあります。これが、リフレクション メカニズムが動的に情報を取得し、動的にオブジェクト メソッドを呼び出す理由でもあります。

Javaのリフレクションメカニズムの原理は何ですか次の図は、Java.lang.class のメソッドです

Javaのリフレクションメカニズムの原理は何ですか

Javaのリフレクションメカニズムの原理は何ですか## 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 の基本チュートリアルJavaのリフレクションメカニズムの原理は何ですか

以上がJavaのリフレクションメカニズムの原理は何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール