Maison  >  Article  >  Java  >  Explication détaillée des génériques Java (résumé des points de connaissances)

Explication détaillée des génériques Java (résumé des points de connaissances)

青灯夜游
青灯夜游avant
2019-11-26 17:04:463181parcourir

Explication détaillée des génériques Java (résumé des points de connaissances)

Concepts

Source : Java n'était pas universel jusqu'à son introduction dans le JDK 1.5. Les génériques Java sont implémentés par effacement. Savez-vous ce qu'est l'effacement ? Regardez en bas.

Concept : les classes et méthodes régulières ne peuvent fonctionner qu'avec des types spécifiques ou des classes personnalisées ; Si vous souhaitez écrire du code pouvant être appliqué à de nombreux types de code, cette restriction stricte imposera de nombreuses contraintes sur le code. Les génériques implémentent le concept de types paramétrés, permettant d'appliquer du code à plusieurs types. Lorsque les génériques sont apparus dans les langages de programmation, leur objectif initial était de permettre aux classes et aux méthodes d’avoir un large pouvoir d’expression.

[Apprentissage recommandé : Tutoriel vidéo Java]

Génériques simples

Il existe de nombreuses raisons pour l'émergence des génériques, l'une des raisons les plus importantes est Créer une classe de conteneur. Nous ne spécifions pas encore le type, mais décidons quel type utiliser plus tard. Pour y parvenir, les paramètres de type doivent être utilisés après le nom de la classe, entre crochets angulaires. Ensuite, lorsque cette classe est utilisée, les paramètres de ce type seront remplacés par le type réel. Dans l'exemple ci-dessous, t est un paramètre de type. Le code est le suivant :

Cependant, dans de nombreux codes sources, certaines classes génériques ont plusieurs paramètres génériques, comme Java. Fonction UTIL. Double fonction, avec trois types de paramètres t, u, r.

Méthodes génériques

Les méthodes génériques rendent les méthodes indépendantes des classes. Lors de l’écriture de code générique, la ligne directrice de base est d’utiliser des méthodes génériques autant que possible. Cela signifie que si vous pouvez utiliser des méthodes génériques au lieu de méthodes génériques pour la classe entière, vous pouvez alors utiliser des méthodes génériques car elles rendent les choses plus claires. De plus, pour les méthodes statiques, les paramètres de type d'une classe générique ne sont pas accessibles, donc si les méthodes statiques doivent utiliser des capacités de généralisation, elles doivent être transformées en méthodes génériques.

Effacement des génériques

Quand j'ai lu la section "Secrets de suppression" dans le chapitre général de Java Programming Thoughts, j'étais particulièrement étourdi, puis quand j'ai baissé les yeux, je suis devenu de plus en plus confus . Surtout quand on regarde les limites et les jokers, c'est un peu déroutant. Voyons d’abord ce qu’est l’effacement. Dans le code générique, les informations sur les types de paramètres génériques ne sont pas disponibles. Les génériques Java sont implémentés par effacement, ce qui signifie que lors de l'utilisation de génériques, tout type spécifique est effacé et la seule chose que vous en savez est l'utilisation d'objets. Étant donné que les génériques n’ont pas été introduits à l’origine dans Java, celui-ci a été conçu pour être compatible avec les anciennes versions du JDK. ErAcess est un compromis entre les implémentations génériques de Java. Ainsi, lorsque vous exécutez, list est identique à list. Notez qu'il est en cours d'exécution, mais au moment de la compilation, list représente un conteneur de liste de ce type de chaîne et list Par exemple, des exemples d'idées de programmation Java.

Limites des génériques

Les génériques en Java, une fois compilés, T représente un type, si aucune limite n'est spécifiée, il est égal à l'objet . Nous pouvons spécifier des limites pour les génériques en utilisant le mot-clé extends. Pour pouvoir appeler f(), nous pouvons aider la classe générique en lui donnant une limite de classe générique, en indiquant au compilateur qu'il doit accepter les types derrière la limite. Des mots-clés étendus sont utilisés ici. Remplacez le code ci-dessus par

Résumé

Les fonctionnalités des génériques Java sont largement utilisées dans de nombreux frameworks open source. Cela nécessite une compréhension approfondie. Je pense qu’à mesure que les années de codage commencent, j’aurai une compréhension différente à l’avenir. Maintenant, je ne peux en savoir plus qu'en lisant des livres.

Cet article provient de la rubrique Introduction Java, bienvenue pour apprendre !

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:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer