Читая онлайн-учебник по Java, я ничего не понимаю о захвате с подстановочными знаками Например:
import java.util.List;
public class WildcardError {
void foo(List<?> i) {
i.set(0, i.get(0));
}
}
почему компилятор не может сохранить присваивание в безопасности? Он знает, что, выполняя, например, метод со списком целых чисел, он получает из i.get значение целого числа. Поэтому попытайтесь установить значение Integer с индексом 0 в тот же список Integer (i). Итак, что же не так? Зачем писать помощник Wildcard?