GÉNÉRIQUES: c'est-à-dire "type paramétré", le type de données opéré est spécifié comme un paramètre. Ce mécanisme permet aux programmeurs de détecter les types illégaux au moment de la compilation.
La différence entre ne pas utiliser de génériques et utiliser des génériques
Pas de code générique:
import java.util.arraylist; import java.util.list; public class nogenerics {public static void main (String [] args) {list arrayList = new ArrayList (); arrayList.add ("1"); // Type de caractères ArrayList.add (1); // Type de nombre pour (int i = 0; i <arrayList.size (); i ++) {String S = (String) arrayList.get (i); // CONTENIR CONTENIR, mais ne peut pas être converti en type de caractère, et aucune erreur n'a été signalée pour le système de compilation.out.println (s);}}}Utilisation du code générique:
import java.util.arraylist; import java.util.list; public class generics {public static void main (string [] args) {list <string> stringList = new ArrayList <string> (); list <nteger> IntegerList = new ArrayList <> (); // Simplify StringList.add ("1"); //StringList.add(1); // Erreur de compilation, seul le type de caractères peut être ajouté IntegerList.add (1); //IntegerList.add("1 "); // Erreur de compilation, seul le type de nombre peut être ajouté pour (int i = 0; i <stringList.size (); i ++) {string s = stringList.get (i); System.out.println (s);} pour (int j = 0; j <IntegerList.Size (); j ++) {int i = ingerList.get (j); System.out.TrintLn (i);Remarque: Dans la version JDK, list <string> stringList = new ArrayList <string> (); Peut être abrégé sous forme de liste <string> stringList = new ArrayList <> ();
Avantages des génériques:
1. Type Safety; Par exemple, la liste <string> ne peut que les types de chaînes, le mettez simplement comme des types de restriction.
2. Éliminer la coulée; rendre le code plus lisible et réduire les risques d'erreurs.
3. Avantages de performance potentiels; Les génériques apportent des possibilités d'optimisations plus importantes. S'il n'y a pas de génériques, les programmeurs spécifieront ces moulages.
Avis:
1. Les paramètres de type des types génériques ne peuvent être que des types de classes (y compris des classes personnalisées), pas des types simples. Par exemple, liste <String, personne>
2. Il peut y avoir des paramètres de type multiple pour les génériques, tels que List <String, Integer>