Я учусь на SCJP / OCPJP и натолкнулся на пример вопроса, который кажется мне странным.
В примере кода созданы две общие коллекции:
List<?> list = new ArrayList<?>();
List<? extends Object> list2 = new ArrayList<? extends Object>();
"Правильный ответ на вопрос состоял в том, что этот код будет компилироваться, но добавление в любую коллекцию приведет к ошибке времени выполнения.
Когда я пытаюсь скомпилировать код, я просто получаю ошибки.Учебник по Java даже не показывает этот тип кода, вместо этого он обычно использует подстановочные знаки как часть апскейтинга.
Collection<?> c = new ArrayList<String>();
Являются ли две общие коллекции выше даже допустимым кодом?Второй по моей логике будет только запрещать интерфейсы.Первый выглядит совершенно бесполезным.Зачем использовать универсальный, который не пытается контролировать?