コードを作成するためのJavaリフレクションメソッドの深い理解

例について話すとき、多くの人々はまだこの概念がなぜであるかを説明することができません。実際、インスタンスは特定のオブジェクトであり、前に学習したクラスや配列のように、インスタンスを作成できます。リフレクションも比較的抽象的な概念なので、インスタンス化できます。以下は、例の簡単な理解であり、次に、非パラメーターおよびパラメーター化されたリフレクションインスタンスのインスタンス化メソッドをそれぞれ示します。

1.説明例

新規オブジェクトはインスタンスです。新しいオブジェクトをインスタンスと呼ぶことができます。率直に言って、それは新しい「もの」です。オブジェクトまたはインスタンスと呼ぶこともできます。オブジェクトとインスタンスは、この観点。

2.nullパラメータのインスタンスを作成します

ClassオブジェクトのnewInstance()メソッドを使用して、Classオブジェクトの対応するクラスのインスタンスを作成します。

//オリジナル:新規の場合、最初にクラスの名前に従って新しいクラスのバイトコードファイルを探し、それをメモリにロードします。

//バイトコードファイルオブジェクトを作成してから、バイトファイルに対応するPersonオブジェクトを作成します。

Person p = new Person();
//反射:找寻该类的名称,并加载进内存,并产生Class对象
//在产生类的对象
Strint className = "com.example.hgx.Person";
Class clazz = Class.forName(className);
Object obj = clazz.newInstance();

3.パラメータを使用してインスタンスを作成します

このとき、Classオブジェクトから指定したコンストラクタオブジェクトを取得し、コンストラクタオブジェクトのnewInstance()メソッドを呼び出してインスタンスを作成する必要があります。

class Person {
    public String name;
    private int age;
    public Person(String name, int age) {
      this.name = name;
      this.age = age;
    }
  }
//获取Person类带一个(String,int)参数的构造器
Strint className = "com.example.hgx.Person";
Class clazz = Class.forName(className);
Constructor constructor = clazz.getConstructor(String.class,int.class);

コンテンツの拡張:


リフレクションの定義リフレクションメカニズムとは、実行中にプログラムが独自の情報を取得する機能を指します。Javaでは、クラスの名前が指定されている限り、クラスのすべての属性とメソッドはリフレクションメカニズムを介して取得できます。

リフレクションの役割

  • 実行時にオブジェクトが属するクラスを判断します。
  • 実行時に任意のクラスのメンバー変数とメソッドを判断します。
  • 実行時にオブジェクトのメソッドを任意に呼び出す
  • 実行時に任意のクラスのオブジェクトを構築します

2021年に収集された最新の高頻度インタビューの質問(すべてドキュメントにまとめられています)には、mysql、netty、spring、thread、spring cloud、jvm、ソースコード、アルゴリズムなど、多くの乾物があります。詳細な学習計画、インタビュー質問の並べ替えなど。これらのコンテンツを取得する必要がある場合は、次のようなQを追加してください:11604713672

おすすめ

転載: blog.csdn.net/weixin_51495453/article/details/114449040