Heim >Java >JavaErste Schritte >Der Unterschied zwischen T und ? in Java-Generika
T steht für einen Typ.
Zur Klasse hinzufügen:
class SuperClass<A>{}
Zur Methode hinzufügen:
public <T>void fromArrayToCollection(T[] a, Collection<T> c){}
(Kostenloses Teilen von Lernvideo-Tutorials: Java-Video-Tutorial)
Das 8742468051c85b06f0a0af9e3e506b5c für die Methode bedeutet, dass generische Parameter in der Klasse verwendet werden. Die generischen Parameter für den aufrufenden Typ müssen nicht übergeben werden , sofern sie in der Methode verwendet werden. Der generische Typ stimmt mit dem in der Klasse übergebenen generischen Typ überein.
class People<T>{ public void show(T a) { } }
T erweitert T2 bedeutet, dass der übergebene Parameter T2 oder ein Untertyp von T2 ist.
? ist ein Platzhalterzeichen und bezieht sich auf alle Typen.
wird im Allgemeinen zum Definieren einer Referenzvariablen verwendet. Der Vorteil besteht darin, dass die Definition einer sup-Referenzvariablen, wie unten gezeigt, auf mehrere Objekte verweisen kann.
SuperClass<?> sup = new SuperClass<String>("lisi"); sup = new SuperClass<People>(new People()); sup = new SuperClass<Animal>(new Animal());
Wenn Sie kein ? verwenden und einen festen Typ verwenden, dann:
SuperClass<String> sup1 = new SuperClass<String>("lisi"); SuperClass<People> sup2 = new SuperClass<People>("lisi"); SuperClass<Animal> sup3 = new SuperClass<Animal>("lisi");
Das ist der Vorteil des Platzhalters ?
Empfohlene verwandte Artikel und Tutorials: Java-Einführungs-Tutorial
Das obige ist der detaillierte Inhalt vonDer Unterschied zwischen T und ? in Java-Generika. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!