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