Nach unten beschränkten Wildcard sinnvoll?

L

Ladnaks

Ich frage mich gerade wo man nach unten beschränkte Wildcards sinnvoll einsetzen soll. Mir fällt jedenfalls nichts ein.

Also sowas wie GenericClass<? super MyClass>

Ich meine welchen Grund hätte ich keine Untertypen von MyClass zuzulassen, wenn doch laut Ersetzbarkeitsprinzip ein Untertyp immer für den Obertyp eingesetzt werden kann.

Deshalb frage ich mich warum es die überhaupt gibt. Jemand eine Idee wo man es sinnvoll nutzen könnte?
 
Zum Beispiel vom sogenannten Put-Get Prinzip bei Listen. Wenn du eine API-Methode schreibst(put) ist es dir egal in welche Art von Liste das Ergebnis reingeschrieben wird, aber es muss zwingend ? super XYZ sein. Beim getten musst du ja wissen was du bekommst,d.h. ? extends XYZ.

Als Beispiel-Methode nenn ich mal Collections.copy(List<? super T> dest, List<? extends T> src)
 
Zurück