L'exemple de cet article résume l'utilisation des génériques en Java. Partagez-le pour tout le monde pour votre référence. Les détails sont les suivants:
1 utilisation de base
Liste d'interface publique <e> {void add (e);2 génériques et sous-classe
L'enfant est une sous-classe de parents, mais List <fil> n'est pas une sous-classe de List <parent>.
SO: list <objet> list = new ArrayList <string> () est faux.
Si ce qui précède est correct, alors:
Liste <string> ls = new ArrayList <string> (); L'objet de la chaîne échouera.
3 wildcards
En raison de 2, la mise en œuvre suivante n'est pas possible pour la sortie de la collection unifiée.
Void printCollection (collection <objet> c) {pour (objet o: c) {// faire quelque chose}}}Alors, besoin d'être utilisé? ::
Void printCollection (collection <?> C) {for (objet o: c) {// 1 // faire quelque chose} // okLe type ici est inconnu, mais tout objet est un objet, donc l'exemple ci-dessus 1 est correct. Mais l'exemple suivant est mauvais:
void add (collection <? étend myClass> c) {c.add (new myClass ());La raison est également très claire,?
4. Méthode de génération
L'exemple ci-dessus peut être obtenu:
<T> add (collection <T> C, t t) {c.add (t);}Dans la prémisse d'assurer la sémantique, le compilateur aidera à faire des travaux de conversion.
5. Comparaison de l'exécution générique
Liste <string> l1 = new ArrayList <string> (); / vrai
Parce que la classe générique est la même que quand.
6 tableau générique (peut rendre le type dangereux)
Copier le code comme suit: Liste <string> [] lsa = new ArrayList <string> [10];
Si possible, le type peut ne pas être sûr. comme:
Objet o = lsa; objet [] oa = (objet []) o; s = lsa [1] .get (0);
On espère que cet article est utile à la conception du programme Java de tous.