Maison  >  Article  >  Java  >  Pourquoi Java utilise-t-il des types de portée (génériques) ?

Pourquoi Java utilise-t-il des types de portée (génériques) ?

little bottle
little bottleoriginal
2019-05-29 11:53:083450parcourir

Que sont les génériques ? Les génériques font référence à la possibilité de paramétrer les types. Vous pouvez définir une classe ou une méthode avec un type générique, puis le compilateur la remplacera par un type concret.

Pourquoi Java utilise-t-il des types de portée (génériques) ?

Avantages de l'utilisation des génériques

L'avantage de l'introduction des génériques dans le langage Java est la sécurité et la simplicité. L'avantage des génériques est que la sécurité des types est vérifiée lors de la compilation et que tous les transtypages sont automatiques et implicites, améliorant ainsi la réutilisation du code.

En détail :

1.

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 degré beaucoup plus élevé. Sans génériques, ces hypothèses n'existent que dans l'esprit du programmeur (ou, si vous êtes chanceux, dans les commentaires du code).

2. Éliminez la conversion de type forcée.

Un avantage secondaire des génériques est l'élimination de nombreux transtypages dans votre code source. Cela rend le code plus lisible et réduit les risques d'erreurs.

3. Gains de performances potentiels.

Les génériques apportent la possibilité d'une plus grande optimisation. Dans l'implémentation initiale des génériques, le compilateur insère des transtypages (sans génériques, le programmeur spécifierait 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. En raison de la manière dont les génériques sont implémentés, leur prise en charge ne nécessite (presque) aucune modification de la JVM ou des fichiers de classe. Tout le travail est effectué dans le compilateur, qui génère un code similaire à ce que vous écririez sans génériques (et transtypages), mais avec un type plus sûr.

Quelques règles et restrictions sur l'utilisation des génériques

1. Les paramètres de type des génériques ne peuvent être que des types de classe (y compris des classes personnalisées), pas des types simples.

2. Un même type générique peut correspondre à plusieurs versions (car le type du paramètre est incertain), et différentes versions d'instances de classe générique sont incompatibles.

3. Les génériques peuvent avoir plusieurs paramètres de type.

4. Les types de paramètres génériques peuvent utiliser l'instruction extends, telle que . Deviennent habituellement des « types limités ».

5. Les types de paramètres génériques peuvent également être des types génériques. Par exemple Class classType = Class.forName(Java.lang.String);

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