Heim > Java > javaLernprogramm > Wie ruft der Java-Reflexionsmechanismus den Konstruktor auf?

Wie ruft der Java-Reflexionsmechanismus den Konstruktor auf?

WBOY
Freigeben: 2024-04-15 13:00:02
Original
1096 Leute haben es durchsucht

Der Reflexionsmechanismus kann die Konstruktormethode über die Methode Constructor.newInstance() aufrufen und dabei die eigentliche Parameterliste übergeben, um das Objekt zu erstellen. Diese Methode erfordert, dass der Konstruktortyp und die Reihenfolge übereinstimmen und der Konstruktor öffentlich sein oder über entsprechende Zugriffsberechtigungen verfügen muss.

Wie ruft der Java-Reflexionsmechanismus den Konstruktor auf?

Der Java-Reflexionsmechanismus ruft die Konstruktormethode auf.

Der Java-Reflexionsmechanismus bietet dynamischen Zugriff auf Klassen und ermöglicht die Überprüfung und Änderung von Klassen und ihren Mitgliedern zur Laufzeit. Durch Reflexion können wir Klassenkonstruktormethoden aufrufen, um neue Objekte zu erstellen.

Syntax:

Um den Konstruktor mithilfe von Reflektion aufzurufen, können Sie die Methode Constructor.newInstance() verwenden. Die Syntax lautet wie folgt: Constructor.newInstance() 方法。其语法如下:

Object newInstance(Object... args) throws InstantiationException, IllegalAccessException, InvocationTargetException
Nach dem Login kopieren

其中:

  • args:用于构造对象的实际参数列表

实战案例:

我们创建一个名为 Person 的类,并提供一个带参数的构造方法:

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

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }
}
Nach dem Login kopieren

现在,我们可以使用反射调用此构造方法:

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

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

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

使用反射调用的对象可以像普通对象一样访问:

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

注意事项:

  • 调用构造方法需要传递正确的参数类型和顺序。
  • 被调用的构造方法必须是公开的或具有适当的访问权限。
  • 如果构造方法抛出异常,newInstance() 会将该异常包装在一个 InvocationTargetExceptionrrreee
  • Darunter:
  • args: die tatsächliche Parameterliste, die zum Erstellen des Objekts verwendet wird 🎜🎜🎜🎜Eigentlicher Fall: 🎜🎜🎜Wir erstellen ein Datei namens Person Klasse und stellt einen Konstruktor mit Parametern bereit: 🎜rrreee🎜Jetzt können wir diesen Konstruktor mithilfe von Reflektion aufrufen: 🎜rrreee🎜Auf Objekte, die mithilfe von Reflektion aufgerufen werden, kann wie auf normale Objekte zugegriffen werden: 🎜rrreee🎜 🎜Hinweis : 🎜🎜
    • Der Aufruf des Konstruktors erfordert die Übergabe der richtigen Parametertypen und der richtigen Reihenfolge. 🎜
    • Der aufgerufene Konstruktor muss öffentlich sein oder über entsprechende Zugriffsberechtigungen verfügen. 🎜
    • Wenn der Konstruktor eine Ausnahme auslöst, verpackt newInstance() die Ausnahme in eine InvocationTargetException und löst sie aus. 🎜🎜

Das obige ist der detaillierte Inhalt vonWie ruft der Java-Reflexionsmechanismus den Konstruktor auf?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage