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?