Java Generics: Wildcard Capture Missverständnisse

Wenn ich das Java-Online-Tutorial lese, verstehe ich nichts von Wildcard-Capture. Zum Beispiel:

    import java.util.List;
    public class WildcardError {
     void foo(List<?> i) {
      i.set(0, i.get(0));
     }
    }

Warum kann der Compiler die Zuweisung nicht sicher aufbewahren? Es ist bekannt, dass durch Ausführen der Methode mit einer Ganzzahlliste beispielsweise ein Ganzzahlwert abgerufen wird. Daher wird versucht, einen Integer-Wert am Index 0 auf dieselbe Integer-Liste (i) zu setzen. Also, was ist los? Warum Wildcard-Helfer schreiben?

Antworten auf die Frage(5)

Ihre Antwort auf die Frage