Accueil Finances personnelles Programmation Java: tout sur les Génériques - les nuls

Programmation Java: tout sur les Génériques - les nuls

Vidéo: APPRENDRE LE JAVA #1 - LES BASES & PREREQUIS 2025

Vidéo: APPRENDRE LE JAVA #1 - LES BASES & PREREQUIS 2025
Anonim

L'un des objectifs de conception d'origine de Java était de garder la langue aussi simple que possible. Le développeur du langage a pris des fonctionnalités inutilement compliquées de C ++ et les a jetées par la fenêtre. Le résultat était un langage élégant et élégant. Certaines personnes ont dit que la langue était trop lisse.

Après plusieurs années de discussions et de querelles, Java est devenu un peu plus compliqué. En l'an 2004, Java avait des types enum, améliorés pour les boucles, l'importation statique, et quelques autres nouvelles fonctionnalités intéressantes. Mais la nouveauté la plus parlée était l'introduction des génériques.

ArrayList people = new ArrayList ();

L'utilisation de quelque chose comme était nouveau dans Java 5. 0. Dans l'ancien Java, vous écririez

ArrayList people = new ArrayList ();

A cette époque, une ArrayList pouvait stocker presque tout ce que vous vouliez y mettre: un nombre, un compte, une pièce, une chaîne … n'importe quoi. La classe ArrayList était très polyvalente, mais avec cette polyvalence est venu quelques maux de tête. Si vous pouviez placer quelque chose dans une ArrayList, vous ne pourriez pas prédire facilement ce que vous obtiendriez d'une ArrayList.

En particulier, vous ne pouviez pas écrire facilement du code supposant que vous aviez stocké certains types de valeurs dans ArrayList. Voici un exemple:

ArrayList things = new ArrayList (); des choses. ajouter (nouveau compte ()); Compte myAccount = choses. get (0); // NE L'UTILISEZ PAS. C'est un mauvais code.

Dans la troisième ligne, l'appel de get (0) saisit la valeur la plus ancienne dans la collection des objets. L'appel de get (0) est correct, mais le compilateur s'interrompt alors sur l'assignation tentée à myAccount. Vous obtenez un message sur la troisième ligne indiquant que tout ce que vous obtenez de la liste des choses ne peut pas être bourré dans la variable myAccount.

Vous obtenez ce message car, au moment où le compilateur atteint la troisième ligne, il a oublié que l'élément ajouté sur la deuxième ligne était de type Account!

L'introduction des génériques résout ce problème:

ArrayList things = new ArrayList (); des choses. ajouter (nouveau compte ()); Compte myAccount = choses. get (0); // UTILISER CE CODE AU LIEU. C'est bon code.

Ajouter à deux endroits indique au compilateur que les choses stockent les instances de compte - rien d'autre. Ainsi, dans la troisième ligne du code précédent, vous obtenez une valeur de la collection d'objets. Ensuite, comme les objets ne stockent que des objets Compte, vous pouvez faire correspondre myAccount à cette nouvelle valeur.

Java 5. 0 génériques ajoutés à Java. Mais peu après la naissance de Java 5. 0, les programmeurs ont remarqué à quel point le code des génériques pouvait être maladroit.Après tout, vous pouvez créer des génériques dans les génériques. Une ArrayList peut contenir un groupe de tableaux, chacun pouvant être un ArrayList. Vous pouvez donc écrire

ArrayList  mess = new ArrayList  ();

Toute la répétition dans cette déclaration de mess donne aux programmeurs un mal de tête! Pour éviter cette laideur, Java 7 et les versions ultérieures ont un opérateur , . L'opérateur de diamant dit à Java de réutiliser toutes les choses incroyablement compliquées que vous avez placées dans la partie précédente de la déclaration générique.

Dans cet exemple, le dit à Java de réutiliser , même si vous n'écrivez qu'une seule fois. Voici à quoi ressemble le code simplifié de Java 7:

ArrayList  mess = new ArrayList ();

Dans Java 7 et versions ultérieures, vous pouvez écrire l'une ou l'autre de ces déclarations de mess - la déclaration originale et désagréable avec deux occurrences de ArrayList [] ou la déclaration simplifiée (seulement légèrement méchante) avec l'opérateur diamond et une seule ArrayList [] occurrence.

Oui, le code simplifié est encore compliqué. Mais sans toute la répétition ArrayList [], le code simplifié est moins lourd. L'opérateur de diamant Java 7 vous enlève une chance de copier quelque chose de manière incorrecte et d'avoir une grosse erreur dans votre code.

Programmation Java: tout sur les Génériques - les nuls

Le choix des éditeurs

Pour les seniors: Comment travailler avec Windows dans Microsoft Windows - les nuls

Pour les seniors: Comment travailler avec Windows dans Microsoft Windows - les nuls

Windows, avec un W majuscule, tire son nom de sa caractéristique principale: Windows, avec un w minuscule. Se familiariser avec Windows signifie apprendre à ouvrir, fermer, redimensionner, déplacer et basculer entre les fenêtres, ce qui est la clé pour jongler avec succès avec plusieurs activités. Chaque programme que vous exécutez occupe sa propre fenêtre. Une fenêtre peut occuper une partie de ...

Comment accepter ou rejeter les cookies dans Safari - dummies

Comment accepter ou rejeter les cookies dans Safari - dummies

Un cookie est un petit fichier qu'un site Web enregistre automatiquement sur le disque dur de votre Mac. Il contient des informations, telles que vos préférences ou votre date de naissance, que le site utilisera lors de vos prochaines visites. Dans Mac OS X Snow Leopard, Safari vous permet de choisir d'accepter ou non tous les cookies ...

Le choix des éditeurs

Construire des boîtes et des lignes Bézier dans QuarkXPress - des nuls

Construire des boîtes et des lignes Bézier dans QuarkXPress - des nuls

Pour créer une boîte ou une ligne dans QuarkXPress plus complexe qu'un simple rectangle, ovale ou starburst, vous entrez dans le domaine du chemin de Bézier. Si vous avez utilisé l'outil Plume dans Adobe Illustrator ou Photoshop, vous comprenez déjà les chemins de Bézier. Il faut un peu de pratique et un esprit détendu ...

Création d'un rapport avec Crystal Reports 10 - témoins

Création d'un rapport avec Crystal Reports 10 - témoins

Lorsque vous démarrez Crystal Reports 10, généralement l'une des trois choses suivantes: créer un rapport, modifier un rapport ou exécuter un rapport sur les données de votre base de données. Les rapports prennent des données à partir d'une base de données, les traitent, les formatent et les affichent ensuite sur une imprimante, un écran d'ordinateur ou un site Web. Crystal Reports ...

Traitant des commentaires Javadoc dans Eclipse - mannequins

Traitant des commentaires Javadoc dans Eclipse - mannequins

Lorsque vous utilisez Eclipse pour écrire du code Java, n'oubliez pas de éditez les commentaires de Javadoc (les choses qui commencent par / **). Vous pouvez ajouter des informations utiles lorsque vous modifiez les commentaires Javadoc et lorsque vous les modifiez, l'aide au code d'Eclipse propose des suggestions. N'oubliez pas ces astuces lorsque vous modifiez vos commentaires Javadoc: Ajouter un commentaire Javadoc: ...

Le choix des éditeurs

Les connexions cachées sur le Nikon D5600 - les nuls

Les connexions cachées sur le Nikon D5600 - les nuls

Ouvrent les couvercles sur les côtés gauche et droit du Nikon D5600 caméra, et vous verrez plusieurs ports de connexions cachées. Les ports de connexion suivants sont indiqués sur cette image: Terminal d'accessoires: ce terminal accepte les accessoires suivants: câble déclencheur à distance Nikon MC-DC2; Télécommandes sans fil WR-1 et WR-R10; et les unités GPS GP-1 / GP-1A. I ...

Les connexions cachées sur votre Nikon D5200 - les nuls

Les connexions cachées sur votre Nikon D5200 - les nuls

ÉParpillés sur l'extérieur de votre appareil photo sont nombreuses commandes que vous utilisez pour changer d'image -prend des paramètres, revoir et modifier vos photos, et effectuer diverses autres opérations. Caché sous le couvercle sur le côté gauche de la caméra, vous trouverez les quatre ports de connexion suivants, étiquetés dans cette figure: Borne accessoire: Vous pouvez brancher le Nikon en option ...

Des boutons et autres commandes du Nikon D7500 - mannequins

Des boutons et autres commandes du Nikon D7500 - mannequins

C'est génial d'avoir une carte pour le boutons et commandes sur votre appareil photo, mais ce n'est pas beaucoup d'aide si vous ne pouvez pas vous rappeler quel bouton appuyer sur quand (et pourquoi). Alors, voici un aperçu des fonctions des contrôles les plus importants. (Certains contrôles ont des fonctions supplémentaires pendant certaines opérations, mais la table ...