В чем отличие результата инициализации первой записи от второй
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();
Это всё, если кратко. Более подробно есть хорошая статья.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Хотите улучшить этот вопрос? Переформулируйте вопрос так, чтобы он был сосредоточен только на одной проблеме
Пишу игру (на Android), одной из особенностей которой является кастомизация внешнего вида игрокаЕсть класс Character:
Прочёл в литературе, что в процессе Type Erasure (стирания типов) компилятор выполняет следующие действия: