Heim > Java > JavaErste Schritte > Der Unterschied zwischen T und ? in Java-Generika

Der Unterschied zwischen T und ? in Java-Generika

王林
Freigeben: 2020-01-15 16:28:17
Original
5956 Leute haben es durchsucht

Der Unterschied zwischen T und ? in Java-Generika

T steht für einen Typ.

Zur Klasse hinzufügen:

class SuperClass<A>{}
Nach dem Login kopieren

Zur Methode hinzufügen:

public <T>void fromArrayToCollection(T[] a, Collection<T> c){}
Nach dem Login kopieren

(Kostenloses Teilen von Lernvideo-Tutorials: Java-Video-Tutorial)

Das 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) {
   }
}
Nach dem Login kopieren

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());
Nach dem Login kopieren

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");
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage