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

Der Unterschied zwischen T und ? in Java-Generika

王林
王林Original
2020-01-15 16:28:175953Durchsuche

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!

Stellungnahme:
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