Typen, die ursprünglich enthalten waren: einfache Typen und komplexe Typen. Komplexe Typen sind jetzt in zwei verschiedene Typen unterteilt Vererbungsbeziehung;
Die Vorteile von Generika sind:
Startversion
Generische Versionpublic void write(Integer i, Integer[] ia); public void write(Double d, Double[] da);Vereinfachter Code
public <T> void write(T t, T[] ta);
Definieren Sie Generika
1. Definieren Sie nach der Klasse
Folgen Sie dem Klassennamen
Definieren Sie Generika T, S und S erbt Tpublic class TestClassDefine<T, S extends T>{}
2. Definieren Sie nach dem Methodendekorator
Unmittelbar nach dem Modifikator (öffentlich)
Definieren Sie generisches T, S und S erbt Tpublic <T, S extends T> T testGenericMethodDefine(T t, S s){}
Instanziieren Sie generische Elemente
1. Instanziieren Sie ein für eine Klasse definiertes Generikum.
Bei der ersten Deklaration oder Instanziierung einer Klassenvariablen. Zum Beispiel
zweite geerbte Klasse oder bei der Implementierung einer Schnittstelle. Zum BeispielList<String> list; list = new ArrayList<String>;2. Generics zu Instanziierungsdefinitionsmethoden076402276aae5dbec7f672f8f4e5cc81
public class MyList<E> extends ArrayList<E> implements List<E> {...}
Beim Aufruf einer generischen Methode führt der Compiler automatisch eine Zuweisung durch, wenn die Zuweisung nicht erfolgreich sein kann, a Es wird ein Kompilierungsfehler gemeldet.
Platzhalter (?)
Bei der Zuweisung gibt es Definitionen und Zuweisungen. Im obigen Abschnitt wird angegeben, dass alle Zuweisungen ein spezifischer Typ sind ist unsicher, wir verwenden stattdessen Platzhalter (?):
wie
Im Java-Sammlungsframework kann eine Klasse für Container, deren Parameterwerte unbekannten Typs sind, nur lesen seine Elemente, kann ihm aber keine Elemente hinzufügen, da sein Typ unbekannt ist, kann der Compiler nicht erkennen, ob der Typ des hinzugefügten Elements mit dem Typ des Containers kompatibel ist. Die einzige Ausnahme ist NULLList<?> unknownList; List<? extends Number> unknownNumberList; List<? super Integer> unknownBaseLineIntgerList;
Weitere Artikel zum Unterschied zwischen T und Fragezeichen (Platzhalter) in Java-Generika finden Sie auf der chinesischen PHP-Website!