Reflection, comme son nom l'indique, est une fonctionnalité API (Application Programming Interface) en JAVA via laquelle l'instance d'exécution de la classe peut être entièrement examinée. Il fait partie du package Java.lang.reflect. Ce package doit être importé au démarrage du programme, puis les fonctions sont invoquées pour comprendre la fonctionnalité de « réflexion ». Le comportement de n’importe quelle classe peut être étudié ; les métadonnées peuvent être extraites ou modifiées à l'aide de l'API de réflexion lors de l'exécution.
Commencez votre cours de développement de logiciels libres
Développement Web, langages de programmation, tests de logiciels et autres
La syntaxe des fonctions courantes sous API de réflexion pour extraire les informations de classe est fournie ci-dessous :
La classe de réflexion utilise différentes méthodes définies dans le package Java.lang.reflect pour extraire les informations de classe. Les informations sur la classe peuvent être extraites à l'aide de la méthode getClass(), les constructeurs utilisant la méthode getConstructors() et les méthodes utilisant la méthode getMethods(). Ces méthodes sont définies dans l'API de réflexion mais renvoient les informations de la classe, notamment les méthodes, les constructeurs, etc. L'API Reflection est utilisée dans les programmes JAVA, les IDE (environnement de développement intégré) comme Eclipse, Netbeans. Cela peut être bien compris à l'aide des exemples fournis dans la section ci-dessous.
Différents exemples sont mentionnés ci-dessous :
Code :
//package test; import java.lang.Class; public class test{ public static void main(String args[]){ Class<Boolean> c1 = boolean.class; System.out.println("Here, the class name is: "+c1.getName()); Class<test> c2 = test.class; System.out.println("This is another instance of class is used to derive class name : "+c2.getName()); } }
Sortie :
Explication : Veuillez vérifier l'exemple fourni ci-dessus. Il contient un package qui contient toutes les classes nommées « test ». Le package de test a une classe « test déclaré ». Cette classe contient également la méthode principale à partir de laquelle démarrera l’exécution du programme. La classe « Classe
Dans la ligne suivante, plutôt que d'utiliser un type de données primitif, une « classe » de type de données définie par l'utilisateur nommée « test » est prise en compte pour extraire les données. "Classe
Code :
//package test; import java.lang.Class; class Simple{} public class test{ public static void main(String args[]){ try{ Class<?> c=Class.<em>forName</em>("Simple"); System.<em>out</em>.println("The result is: "+c.isInterface()); }catch(Exception e){System.<em>out</em>.println(e);} } }
Sortie :
Explication : Dans l'exemple ci-dessus, un package est créé nommé « test », comme créé dans l'exemple précédent numéro 1. Ce package contient un nom de classe « Simple », qui n'est pas la classe principale. . La classe principale ici est la classe « test » qui contient la méthode principale à partir de laquelle démarrera l’exécution du programme. La « classe > » est un identifiant de classe de réflexion qui a été instancié via un objet nommé ici « c ». Ensuite, cet objet est utilisé pour extraire l'indicateur de décision (Vrai ou faux) de la fonction nommée « isInaterface ». Cette fonction extrait une classe en tant que paramètre ; dans ce cas, la classe qui a été extraite en tant que paramètre était la classe « Simple ». Cette classe n'est pas une interface, donc le « false » est renvoyé en conséquence dans l'écran de sortie. Pour invoquer cette fonction, l'objet de classe « c » a été utilisé.
Certains des avantages de l'utilisation de la réflexion en JAVA sont répertoriés ci-dessous :
La réflexion JAVA permet d'introspecter les classes, les interfaces, les méthodes, etc. sans connaître du tout le nom de la classe. Tout cela se fait au moment de la compilation. Ceci est considéré comme l'une des propriétés les plus puissantes de JAVA car elle peut être utilisée pour créer des instances de la classe, et les membres privés de la classe peuvent être extraits à l'aide de celle-ci. Les développeurs peuvent également l'utiliser pendant l'exécution et pour le mappage d'objets de base de données.
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!