Qu'est-ce que la réflexion ?
Puisque la réflexion est « inversée », cela signifie qu'il s'agit d'un processus inverse. Voyons donc d’abord à quoi ressemble le processus avancé. Concevez une classe, instanciez la classe dans un objet et l'objet appelle des méthodes ou des propriétés pour implémenter certaines fonctions.
Qu'est-ce que la réflexion ?
Je ne sais pas si vous vous souvenez encore de l'image ci-dessus. C'est la connaissance que j'ai apprise lors de mon premier contact avec Java. Ma propre compréhension est que maintenant je connais 1, je déduis 2, puis j'obtiens d'autres informations via 2. (Ce n'est que ma spéculation. Quant à savoir si c'est vrai ou non, nous devrons y réfléchir à l'avenir)
L'analogie avec le scénario réel est :你:妈妈,你知道剪刀在哪吗? 妈妈:我那天放针线的时候好像在针线盒里看到了,你去找找有没有。针线盒在客厅的茶几上。 你:好的。Alors vous avez dérivé "boîte à couture" de "couture" ", puis avez trouvé "Ciseaux" à partir de "Boîte à couture". Notre réflexion est de dériver la classe Class de la classe ou de l'objet, puis d'obtenir les informations de classe à partir de la classe Class. Plus confus ? Ne vous inquiétez pas, regardez en bas.
Trouvez la boîte à couture - obtenez le cours Class
Tout d'abord, qu'est-ce que le cours Class ? La classe Class est la classe de la classe People, tout comme la classe People est la classe de p. La classe Class est le "grand-père" de p.Nous pouvons le comprendre de cette façon : l'objet instance de java.lang.Class est People, et l'objet instance de People est p. Notre idée est d'obtenir la classe Class via la classe People ou l'objet p, puis d'obtenir les informations de la classe People, telles que les attributs, les méthodes, les constructeurs, etc., via la classe Class. Maintenant que nous savons ce qu'est la classe Class, parlons de comment l'obtenir. Il existe trois façons de trouver la classe Class :
Il convient de mentionner que c1, c2 et c3 sont appelés les "types de classe" de la classe Personnes. Bon, maintenant nous résumons les conditions connues : Personnes : Classe
p : Objet
c : Type de classe
Trouver les ciseaux - obtenez les informations de la classe People
Application 1 : Obtenez toutes les méthodes de la classe
Dans la méthode d'obtention de la classe People, ms est un tableau qui stocke la méthode de la classe People via une boucle, son nom, son type de paramètre et sa valeur de retour sont obtenus couche par couche. Enfin, il suffit de l'appeler directement dans la fonction principale
Les résultats partiels obtenus sont les suivants :
Application 2 : Obtenir tous les attributs de la classe
La méthode d'appel est similaire à la méthode d'appel : Résultat d'exécution :
Application 3 : Récupérer le constructeur de la classe
Le constructeur est similaire, non encore.Application 4 : Obtenir une méthode spécifique de la classe
Les résultats d'exécution sont les suivants. Les résultats des deux méthodes d'appel sont les mêmes :
Ce qui précède n'est qu'une liste de fonctions individuelles. , vous pouvez le trouver dans la documentation de l'API : http://tool.oschina.net/apidocs/apidoc?api=jdk-zh
Le concept de réflexion
À la fin de l'article, nous résumons le concept de réflexion et laissons nos pensées se sublimer.
Quelle est la définition de la réflexion ?
Le mécanisme de réflexion JAVA est en cours d'exécution. Pour n'importe quelle classe, vous pouvez connaître toutes les propriétés et méthodes de cette classe, pour n'importe quel objet, vous pouvez appeler n'importe laquelle de ses méthodes. L'obtention et l'appel dynamiques de méthodes objet sont appelés mécanismes de réflexion du langage Java.
La réflexion est-elle nécessaire ?
"Le mécanisme de réflexion est la pierre angulaire de nombreux frameworks Java".
(1) Écrivez la configuration dans le fichier XML ou les propriétés, puis analysez le contenu dans le XML ou les propriétés dans la classe Java pour obtenir une chaîne, puis utilisez le mécanisme de réflexion pour obtenir une certaine chaîne basée sur cette chaîne Instance de classe de la classe, afin que vous puissiez configurer dynamiquement quelque chose. Vous n'avez pas besoin d'ajouter de nouvelles choses ou de faire d'autres choses dans le code à chaque fois. Si vous souhaitez le modifier à l'avenir, vous pouvez directement modifier la configuration. fichier, ce qui rend la maintenance du code très pratique.
(2) Parfois, pour répondre à certains besoins, il peut ne pas être possible d'appeler directement d'autres méthodes dans une classe Java. Cela peut également être réalisé via le mécanisme de réflexion.
Inconvénients de la réflexion ?
Nous pouvons également voir dans le code que le code réfléchi est plus de code que le code d'appel normal, et que les performances sont plus lentes, l'utilisation de la réflexion doit donc être évitée. Cela équivaut à si vous savez déjà où se trouvent les ciseaux, il n'est pas nécessaire de passer par le chemin aiguille et fil-boîte à coudre-ciseaux.
Quels sont les critères d'utilisation de la réflexion ?
Si une fonction peut être complétée sans réflexion, alors il est préférable de ne pas l'utiliser.
Site Web php chinois, un grand nombre de Tutoriels d'introduction à Java gratuits, bienvenue pour apprendre en ligne !
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!