Maison  >  Article  >  Java  >  Comment le mécanisme de réflexion Java appelle-t-il le constructeur ?

Comment le mécanisme de réflexion Java appelle-t-il le constructeur ?

WBOY
WBOYoriginal
2024-04-15 13:00:021020parcourir

Le mécanisme de réflexion peut appeler la méthode constructeur via la méthode Constructor.newInstance(), en transmettant la liste de paramètres réelle pour créer l'objet. Cette méthode nécessite que le type et l'ordre du constructeur correspondent, et que le constructeur doit être public ou disposer des autorisations d'accès appropriées.

Comment le mécanisme de réflexion Java appelle-t-il le constructeur ?

Le mécanisme de réflexion Java appelle la méthode constructeur

Le mécanisme de réflexion Java fournit un accès dynamique aux classes, permettant l'inspection et la modification des classes et de leurs membres au moment de l'exécution. Grâce à la réflexion, nous pouvons appeler des méthodes de constructeur de classe pour créer de nouveaux objets.

Syntaxe :

Pour appeler le constructeur par réflexion, vous pouvez utiliser la méthode Constructor.newInstance(). La syntaxe est la suivante : 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() 会将该异常包装在一个 InvocationTargetExceptionrrreee
  • Parmi eux :
  • args : la liste de paramètres réelle utilisée pour construire l'objet 🎜🎜🎜🎜Cas réel : 🎜🎜🎜Nous créons un fichier nommé classe Person et fournit un constructeur avec des paramètres : 🎜rrreee🎜Maintenant, nous pouvons appeler ce constructeur en utilisant la réflexion : 🎜rrreee🎜Les objets appelés en utilisant la réflexion sont accessibles comme des objets normaux : 🎜rrreee🎜 🎜Note : 🎜🎜
    • L'appel du constructeur nécessite de transmettre les types et l'ordre corrects des paramètres. 🎜
    • Le constructeur appelé doit être public ou disposer des autorisations d'accès appropriées. 🎜
    • Si le constructeur lève une exception, newInstance() encapsulera l'exception dans une InvocationTargetException et la lancera. 🎜🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn