Que sont les génériques Java
Les génériques, c'est-à-dire les « types paramétrés ». En ce qui concerne les paramètres, la chose la plus connue est qu'il existe des paramètres formels lors de la définition d'une méthode, puis que les paramètres réels sont transmis lorsque la méthode est appelée. Alors, comment comprenez-vous les types paramétrés ? Comme son nom l'indique, est qui paramètre le type à partir du type spécifique d'origine, similaire aux paramètres variables de la méthode. À ce stade, le type est également défini sous la forme d'un paramètre (. qui peut être appelé un paramètre de type), puis transmettez le type spécifique (argument de type) lors de l'utilisation/de l'appel.
L'essence des génériques est de paramétrer les types (les types de restrictions spécifiques sur les paramètres formels peuvent être contrôlés via différents types spécifiés par les génériques sans créer de nouveaux types). C'est-à-dire que lors de l'utilisation de génériques, le type de données de l'opération est spécifié en tant que paramètre. Ce type de paramètre peut être utilisé dans les classes, les interfaces et les méthodes, et est appelé respectivement classes génériques, interfaces génériques et méthodes génériques. . (Tutoriel recommandé : tutoriel Java )
Le rôle des génériques :
Le compilateur vérifie si les éléments que nous mettons dans le conteneur répondent aux attentes définies par le conteneur générique. Il suffit d'indiquer au compilateur de quel type de conteneur il s'agit. Le compilateur convertit automatiquement les éléments extraits du conteneur.
Après l'intervention des génériques, l'accent du programmeur est passé de 2 points à 1 point :
Définir le type de traitement du conteneur, afin que l'inspection de la mise en conteneur et la transformation du la suppression du conteneur se fait main dans la main.
Avantages :
1. Sécurité des types
L'objectif principal des génériques est d'améliorer la sécurité des types des programmes Java. En connaissant les restrictions de type des variables définies à l'aide de génériques, le compilateur peut vérifier les hypothèses de type à un niveau très élevé. Sans génériques, ces hypothèses n’existent que dans l’esprit des développeurs de systèmes.
Les génériques permettent au compilateur d'appliquer ces contraintes de type supplémentaires en capturant ces informations de type supplémentaires dans la déclaration de variable. Les erreurs de type sont désormais détectées au moment de la compilation au lieu d'être affichées sous forme d'exception ClassCastException au moment de l'exécution. Le déplacement de la vérification de type du moment de l'exécution vers le moment de la compilation aide les développeurs Java à détecter les erreurs plus tôt et plus facilement, et peut améliorer la fiabilité du programme.
2. Éliminer les transtypages
Un avantage secondaire des génériques est l'élimination de nombreux transtypages dans le code source. Cela rend le code plus lisible et réduit les risques d'erreurs. Bien que la réduction des conversions puisse améliorer le code qui utilise des classes génériques, il existe une pénalité correspondante lors de la déclaration de variables génériques. Utiliser une variable générique une seule fois dans un programme simple ne réduit pas la popularité du code. Mais pour les grands programmes qui utilisent plusieurs fois des variables génériques, le nombre de likes peut être accumulé pour réduire le nombre de likes. Par conséquent, une fois que les génériques auront éliminé la conversion de type forcée, le code sera plus clair et plus propre.
3. Efficacité opérationnelle plus élevée
Dans la programmation non générique, le passage d'un seul type en tant qu'objet entraînera des opérations de boxing et de déballage, qui entraînent toutes deux une surcharge importante. Après l'introduction des génériques, il n'est plus nécessaire d'effectuer des opérations de Boxing et Unboxing, l'efficacité opérationnelle est donc relativement élevée. Surtout dans les systèmes où les opérations de collecte sont très fréquentes, l'amélioration des performances apportée par cette fonctionnalité est plus évidente.
4. Gains de performances potentiels
Les génériques apportent la possibilité d'optimisations plus importantes. Dans l'implémentation initiale des génériques, le compilateur insère des transtypages (sans génériques, les développeurs de systèmes Java spécifieraient ces transtypages) dans le bytecode généré. Mais le fait que davantage d'informations de type soient disponibles pour le compilateur ouvre la possibilité d'optimisations dans les futures versions de la JVM.
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!