List<String> i = new ArrayList<>();
List i2 = i;
i2.add(new MyClass());
Почему такая запись функционирует? i2 уже ждет object в параметрах add, а не стринги. От чего это происходит?
И так у вас есть объект с типом ArrayList<>
;
И у вас есть две ссылки i == List<String>; i2 == List
В этот конкретный объект вы можете добавить абсолютно любой тип.
Но первой ссылкой i List<String>
вы добавили ограничение типом String
;
Соответственно используя ссылку i
вы сможете добавлять только объекты типа String
Следующим шагом вы добавляете еще одну ссылку i2
на объект new ArrayList<>
, которая уже не имеет ограничений. Соответственно, используя эту ссылку вы можете добавить переменные любого типа.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Использую кастомную аннотацию @Example("objectName"), которая переносит нужную информацию - "objectName"Задался спортивным вопросом - как в аннотацию передать...
Столкнулся с проблемой: медленно выполняется программа, использующая CallableВернее так: ответ выдается сразу, но потом она очень долго думает...
Есть пример запроса через RestTemplate поведение которого конфигурируется через ClientHttpRequestFactory и RequestConfigПри создании объекта RequestConfig задаются три...
установил Oracle Database 11g + SQLDeveloperСоздал нового пользователя и connection