В чем отличие результата инициализации первой записи от второй
List list = new ArrayList();
ArrayList arrayList = new ArrayList();
В первом примере
List list = new ArrayList();
создается объект типа List
, а во втором
ArrayList arrayList = new ArrayList();
объект типа ArrayList
. Это возможно, т.к. класс ArrayList
реализует интерфейс List
.
Но есть одно но - в первом примере не будут доступны методы класса ArrayList, а только методы типа List
, т.к. объект типа List
, в то время, как во втором примере методы ArrayList будут доступны.
А чтобы из объекта List
создать объект ArrayList
, достаточно ввести
ArrayList arrayList = (ArrayList) list;
List list;
Представляет собой любой объект реализующий интерфейс List. В Вашем случае это ArrayList, но чтобы воспользоваться специфическими методами этого класса, нужно будет приводить типы.
(ArrayList) list
В Вашем втором примере Вы сразу получаете переменную типа ArrayList
.
ArrayList arrayList = new ArrayList();
Это всё, если кратко. Более подробно есть хорошая статья.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Хотите улучшить этот вопрос? Переформулируйте вопрос так, чтобы он был сосредоточен только на одной проблеме
Пишу игру (на Android), одной из особенностей которой является кастомизация внешнего вида игрокаЕсть класс Character:
Прочёл в литературе, что в процессе Type Erasure (стирания типов) компилятор выполняет следующие действия: