Les génériques sont une nouvelle fonctionnalité de Java SE 1.5. L'essence des génériques est un type paramétré, ce qui signifie que le type de données sur lequel l'opération est effectuée est spécifié en tant que paramètre. Avantages : 1. Sécurité de type, fournissant une détection de type lors de la compilation2. Compatibilité ascendante et descendante3. être mis à jour Plus de réutilisation 4. Le code haute performance écrit en GJ (JAVA générique) peut apporter plus d'informations de type au compilateur Java et à la machine virtuelle. Ces informations peuvent optimiser davantage le programme Java. 140, Comment fonctionnent les génériques Java ? Qu'est-ce que l'effacement de type ? Comment ça marche ? 1. Vérification de type : effectuer une vérification de type avant de générer du bytecode 2. Effacement de type : tous les paramètres de type sont remplacés par leurs types qualifiés, y compris les classes, variables et méthodes (effacement de type)3. Si l'effacement de type entre en conflit avec le polymorphisme, générez une méthode de pont dans la sous-classe pour le résoudre4 Si le type de retour d'une méthode générique est appelé est effacé, un cast est inséré lorsque le type de retour est effacé. La méthode est appelée Effacement de type : Tous les paramètres de type sont remplacés par leurs types qualifiés : Par exemple,
T->Object ? extends BaseClass->BaseClass
Copier après la connexion
Comment ça marche :Les génériques sont implémentés via l'effacement de type. Le compilateur efface toutes les informations liées au type au moment de la compilation, il n'y a donc aucune information relative au type au moment de l'exécution. Par exemple, List est représenté par une seule liste au moment de l'exécution. Le but est d'assurer la compatibilité avec les bibliothèques de classes binaires développées dans les versions antérieures à Java 5. Vous ne pouvez pas accéder aux paramètres de type au moment de l'exécution car le compilateur a converti le type générique en type primitif. En fonction de votre réponse à la question sur les génériques, des questions de suivi vous seront posées sur les raisons pour lesquelles les génériques sont implémentés par effacement de type ou un code générique incorrect vous sera présenté qui entraînera une erreur du compilateur. 141, pouvez-vous transmettre List à une méthode qui accepte le paramètre List
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