ホームページ  >  記事  >  Java  >  Java リフレクション メカニズムはどのようにコンストラクターを呼び出すのでしょうか?

Java リフレクション メカニズムはどのようにコンストラクターを呼び出すのでしょうか?

WBOY
WBOYオリジナル
2024-04-15 13:00:021020ブラウズ

リフレクション メカニズムは、Constructor.newInstance() メソッドを通じてコン​​ストラクター メソッドを呼び出し、実際のパラメーター リストを渡してオブジェクトを作成できます。このメソッドでは、コンストラクターの型と順序が一致する必要があり、コンストラクターはパブリックであるか、適切なアクセス許可を持っている必要があります。

Java リフレクション メカニズムはどのようにコンストラクターを呼び出すのでしょうか?

#Java リフレクション メカニズムはコンストラクターを呼び出します

Java リフレクション メカニズムはクラスへの動的アクセスを提供し、クラスとそのクラスの検査と変更を可能にします。メンバー。リフレクションを通じて、クラス コンストラクター メソッドを呼び出して新しいオブジェクトを作成できます。

構文:

リフレクションを使用してコンストラクターを呼び出すには、

Constructor.newInstance() メソッドを使用できます。構文は次のとおりです:

Object newInstance(Object... args) throws InstantiationException, IllegalAccessException, InvocationTargetException

ここで:

  • args: オブジェクトの構築に使用される実際のパラメータ リスト

実際のケース:

person という名前のクラスを作成し、パラメータを持つコンストラクターを提供します:

public class Person {
    private String name;
    private int age;

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }
}

これで、リフレクション呼び出しを使用できるようになります。このコンストラクター:

// 创建 Class 对象
Class<?> personClass = Class.forName("Person");

// 获取带有两个参数的构造方法
Constructor<?> constructor = personClass.getConstructor(String.class, int.class);

// 调用构造方法创建对象
Object person = constructor.newInstance("John", 30);

リフレクションを使用して呼び出されたオブジェクトは、通常のオブジェクトと同様にアクセスできます:

System.out.println(((Person) person).getName()); // 输出: John
System.out.println(((Person) person).getAge()); // 输出: 30

注意:

    コンストラクターを呼び出すメソッドは次のとおりです。正しいパラメータのタイプと順序が渡されました。
  • 呼び出されるコンストラクターはパブリックであるか、適切なアクセス許可を持っている必要があります。
  • コンストラクターが例外をスローした場合、
  • newInstance() はその例外を InvocationTargetException にラップしてスローします。

以上がJava リフレクション メカニズムはどのようにコンストラクターを呼び出すのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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