Generika: Das heißt, "parametrisierter Typ", der betriebene Datentyp wird als Parameter angegeben. Dieser Mechanismus ermöglicht es den Programmierern, illegale Typen zur Kompilierungszeit zu erkennen.
Der Unterschied zwischen nicht Verwendung von Generika und Generika verwendet
Kein generischer Code:
Java.util.ArrayList; import java.util.list; public class nogenerics {public static void main (String [] args) {list ArrayList = new ArrayList (); ArrayList.add ("1"); // Zeichentyp arrayList.add (1); // Zahlen -Typ für (int i = 0; i <arrayList.size (); i ++) {String s = (String) arrayList.get (i); // Konvertierung aufgießen, kann aber nicht in den Zeichentyp konvertiert werden, und es wurde kein Fehler für das Compilation System.out.println (s);}}} gemeldetVerwenden von generischer Code:
Java.util.ArrayList importieren; // stringList.add ("1") vereinfachen; //Stringlist.add(1); // Fehler kompilieren, kann nur der Zeichentyp integerlist.add (1) hinzugefügt werden. //Integerlist.add("1 "); // Fehler kompilieren, kann nur der Zahlentyp hinzugefügt werden für (int i = 0; i <stringlist.size (); i ++) {string s = stringlist.get (i);HINWEIS: In der JDK -Version liste <string> stringlist = new ArrayList <string> (); kann als Liste <string> stringlist = new ArrayList <> () abgekürzt werden;
Vorteile von Generika:
1. Typ Sicherheit; Beispielsweise kann List <String> nur String -Typen einfügen und einfach als Einschränkentypen einfügen.
2. Beseitigen Sie das Gießen; Machen Sie den Code lesbarer und verringern Sie die Wahrscheinlichkeit von Fehlern.
3. potenzielle Leistungsvorteile; Generika bieten Möglichkeiten für größere Optimierungen. Wenn es keine Generika gibt, geben Programmierer diese Casts an.
Beachten:
1. Die Typparameter generischer Typen können nur Klassentypen (einschließlich benutzerdefinierter Klassen) sein, nicht einfache Typen. Zum Beispiel List <String, Person>
2. Es kann mehrere Typparameter für Generika geben, z. B. List <String, Integer>