Ich lese mehrstufige Wildcards von AngelikaLangerGenericsFaq. Ich bin ziemlich verwirrt über die Syntax. Das Dokument sagtWas sind Multilevel-Wildcards? Verwechslung in der Syntax
Der Typ
Collection<Pair<String,?>>
eine konkrete Ausprägung der generischen Collection-Schnittstelle ist. Es ist eine heterogene Sammlung von Paaren verschiedener Typen. Es kann Elemente vom TypPair<String,Long>
,Pair<String,Date>
,Pair<String,Object>
,Pair<String,String>
und so weiter und so weiter enthalten. Mit anderen Worten,Collection<Pair<String,?>>
enthält eine Mischung von Paaren verschiedener Typen der FormPair<String,?>
. Der TypCollection<? extends Pair<String,?>>
ist ein Platzhalter parametrisierter Typ. es steht NICHT für einen konkreten parametrierten Typ. Es steht für einen Vertreter aus der Familie der Kollektionen , die Instanzen der Collection-Schnittstelle sind, wobei das Argument das FormatPair<String,?>
hat. Kompatible Instanziierungen sindCollection<Pair<String,Long>>
,Collection<Pair<String,String>>
,Collection<Pair<String,Object>>
oderCollection<Pair<String,?>>
. In anderen Worten wissen wir nicht, welche Instanziierung der Sammlung es steht für.Als Faustregel müssen Sie mehrstufige Wildcards von oben nach unten lesen.
Ich bin verwirrt über die folgenden Punkte.
- Kann jemand diese drei Zitate mit Beispiel ausarbeiten. Ich bin total in die Syntax verloren
- Dokument sagt, Para-1 ist die konkrete Instantiierung eines generischen Typs und andere ist nicht die konkrete Instanziierung? Wie ist das?
- Was bedeutet es, die Wild-Cards von oben nach unten zu lesen?
- Welchen Vorteil haben Multi-Level-Joker?
Kann jemand diese Punkte ausarbeiten. Vielen Dank.
danke rohit für so eine ausführliche Erklärung. Lets siehe Collection>, es enthält eine Platzhalter-Notation dann, wie es konkret sein kann, Compiler wird nicht wissen, was der andere Typ ist. Wie können wir es dann als konkret bezeichnen? –
benz
@benz. Ich habe eine Erklärung dazu hinzugefügt. Bitte überprüfen Sie die Bearbeitung. –
Erstaunliche Erklärung Rohit. Vielen Dank. Ich habe noch mehr Zweifel am selben Thema, ich bin am Ende und werde die Frage bearbeiten, weil es ziemlich wichtig ist, sie hier hinzuzufügen. – benz