Maison >Java >Javacommencer >qu'est-ce que la réflexion Java

qu'est-ce que la réflexion Java

爱喝马黛茶的安东尼
爱喝马黛茶的安东尼original
2019-11-12 09:55:293140parcourir

Qu'est-ce que la réflexion ?

qu'est-ce que la réflexion JavaPuisque 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".

quest-ce que la réflexion Java

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.

quest-ce que la réflexion Java

Trouvez la boîte à couture - obtenez le cours Class

Tout d'abord, qu'est-ce que le cours Class ?

quest-ce que la réflexion Java

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

quest-ce que la réflexion Javap : Objet

c : Type de classe

Trouver les ciseaux - obtenez les informations de la classe People

quest-ce que la réflexion Java

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 :

quest-ce que la réflexion JavaApplication 2 : Obtenir tous les attributs de la classe

quest-ce que la réflexion Java

La méthode d'appel est similaire à la méthode d'appel :

quest-ce que la réflexion Java

Résultat d'exécution :

Application 3 : Récupérer le constructeur de la classequest-ce que la réflexion Java

Le constructeur est similaire, non encore.

quest-ce que la réflexion Java

Application 4 : Obtenir une méthode spécifique de la classe

quest-ce que la réflexion Java

Les résultats d'exécution sont les suivants. Les résultats des deux méthodes d'appel sont les mêmes :

quest-ce que la réflexion Java

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

quest-ce que la réflexion Java

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!

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