Das Beispiel dieses Artikels fasst die Verwendung von Generika in Java zusammen. Teilen Sie es für alle für Ihre Referenz. Die Einzelheiten sind wie folgt:
1 Grundnutzung
öffentliche Schnittstellenliste <e> {void add (e);2 Generika und Unterklasse
Kind ist eine Unterklasse von übergeordnetem, aber List <kind> ist keine Unterklasse von List <in <sport>.
Also: List <Object> list = new ArrayList <string> () ist falsch.
Wenn das obige richtig ist, dann:
LISTE <string> ls = New ArrayList <string> (); Objekt zur String fällt fehl.
3 Wildcards
Aufgrund von 2 ist die folgende Implementierung für die Ausgabe der Unified Collection nicht möglich.
Void printCollection (Sammlung <Object> c) {für (Objekt O: c) {// etwas tun}}}Müssen also verwendet werden? ::
Void printCollection (Sammlung <?> C) {für (Objekt O: c) {// 1 // etwas tun} // OKDer Typ hier ist unbekannt, aber jedes Objekt ist Objekt, daher ist das obige Beispiel 1 korrekt. Das folgende Beispiel ist jedoch falsch:
void add (Sammlung <? Erweitert MyClass> c) {C.Add (neue myclass ());Der Grund ist auch sehr klar?
4. Erzeugungsmethode
Das obige Beispiel kann erreicht werden:
<t> add (Sammlung <t> c, t t) {C.Add (t);}Um die Semantik zu gewährleisten, hilft der Compiler dabei, Conversion -Arbeiten zu typisieren.
5. Vergleich der generischen Laufzeit
Liste <string> l1 = Neue ArrayList <string> (); / WAHR
Weil die generische Klasse die gleiche ist wie wann.
6 Generisches Array (kann dazu führen, dass der Typ unsicher ist)
Code Code wie folgt kopieren: List <string> [] lsa = new ArrayList <string> [10];
Wenn möglich, ist der Typ möglicherweise nicht sicher. wie:
Objekt O = LSA; S = LSA [1] .get (0);
Es ist zu hoffen, dass dieser Artikel für Java -Programmdesign aller hilfreich ist.