Maison >Java >javaDidacticiel >Comment appeler une méthode en utilisant la réflexion en Java

Comment appeler une méthode en utilisant la réflexion en Java

王林
王林original
2023-12-23 08:18:48536parcourir

Comment appeler une méthode en utilisant la réflexion en Java

Comment utiliser la réflexion pour appeler des méthodes en Java

La réflexion est une fonctionnalité importante du langage Java. Elle peut obtenir dynamiquement des informations sur la classe et faire fonctionner les membres de la classe au moment de l'exécution, y compris les champs, les méthodes, les constructeurs, etc. L'utilisation de la réflexion nous permet de manipuler les membres d'une classe sans connaître la classe spécifique au moment de la compilation, ce qui nous permet d'écrire du code plus flexible et plus polyvalent. Cet article explique comment utiliser la réflexion pour appeler des méthodes en Java et donne des exemples de code spécifiques.

1. Obtenir l'objet Class de la classe
En Java, pour utiliser la réflexion pour appeler une méthode, vous devez d'abord obtenir l'objet Class de la classe. Vous pouvez obtenir l'objet Class des manières suivantes :

  1. Utilisez l'attribut class de la classe : classname.class
    Par exemple, pour obtenir l'objet Class de la classe String, vous pouvez utiliser le code suivant :
    Class stringClass = String.class;
  2. Utilisez la méthode getClass() de l'objet
    Par exemple, pour obtenir l'objet Class d'un objet chaîne, vous pouvez utiliser le code suivant :
    String str = "Bonjour";
    Class strClass = str. getClass();
  3. Utilisez le statique de la méthode de classe Class pourName()
    Par exemple, pour obtenir l'objet Class de la classe String, vous pouvez utiliser le code suivant :
    Class stringClass = Class.forName("java.lang .String");

2. Appelez la méthode
pour obtenir la classe de la classe. Une fois l'objet créé, vous pouvez utiliser la réflexion pour appeler les méthodes de la classe. Tout d’abord, nous devons récupérer l’objet de la méthode. Vous pouvez obtenir l'objet de la méthode des deux manières suivantes :

  1. Utilisez la méthode getMethod() de la classe Class pour obtenir la méthode spécifiée
    Cette méthode nécessite que le nom et le type de paramètre de la méthode soient transmis, et renvoie un objet méthode. Par exemple, le code suivant obtient la méthode length() de la classe String :
    Method lengthMethod = stringClass.getMethod("length");
  2. Utilisez la méthode getMethods() de la classe Class pour obtenir toutes les méthodes publiques
    Cette méthode renvoie une liste contenant toutes les méthodes publiques Tableau de méthodes. Par exemple, le code suivant obtient toutes les méthodes publiques de la classe String :
    Method[] METHODS = stringClass.getMethods();

Après avoir obtenu l'objet de la méthode, vous pouvez utiliser la méthode Invocation() de la classe Method. pour appeler la méthode. La méthode Invoke() doit transmettre l'objet auquel appartient la méthode ainsi que les paramètres de la méthode, et renvoie la valeur de retour de la méthode. Par exemple, le code suivant appelle la méthode length() de la classe String et renvoie la valeur de retour de la méthode :
String str = "Hello";
Method lengthMethod = stringClass.getMethod("length"); (int) lengthMethod .invoke(str);
System.out.println(length);

3. Exemple de code

Ensuite, un exemple de code complet est donné pour montrer comment utiliser la réflexion pour appeler des méthodes en Java :

import java.lang.reflect.Method;

public class ReflectionExample {
    public static void main(String[] args) throws Exception {
        // 获取String类的Class对象
        Class stringClass = String.class;

        // 获取String类的length()方法
        Method lengthMethod = stringClass.getMethod("length");

        // 创建一个字符串对象
        String str = "Hello, Reflection!";

        // 调用length()方法,并输出返回值
        int length = (int) lengthMethod.invoke(str);
        System.out.println("字符串的长度为:" + length);
    }
}

Dans le code ci-dessus, obtenez d'abord l'objet Class de la classe String, puis obtenez la méthode length() de la classe String et créez un objet chaîne. Enfin, la méthode length() est appelée et la valeur de retour est affichée, qui correspond à la longueur de la chaîne.

Résumé

Grâce à la réflexion, vous pouvez obtenir dynamiquement des informations sur la classe et faire fonctionner les membres de la classe au moment de l'exécution. Cet article explique comment utiliser la réflexion pour appeler des méthodes en Java et donne des exemples de code spécifiques. J'espère qu'à travers l'introduction de cet article, les lecteurs pourront mieux comprendre et maîtriser l'utilisation de la réflexion.

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