ArrayList<обертка /класс> "переменная" = new ArrayList<обертка /класс>();
ArrayList<обертка /класс> "переменная" = new ArrayList<>();
Леонид
39 уровень
В чем разница? Или почему работает?
Архивный
Комментарии (4)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Карен
13 декабря 2018, 08:00
До какой-то версии надо было обязательно писать как в 1 варианте, а потом упростили, и стало возможно писать как во 2м варианте, если типы совпадают.
+1
Ksenia VolkovaJava Developer в DXCMaster
10 декабря 2018, 15:43
Никакой разницы. Java и так знает (исходя из левой части), что будет находиться в вашем списке, поэтому второй раз указывать необязательно.
0
Леонид
10 декабря 2018, 20:06
Но почему где-то указывают, а где -то нет. Это только для полиморфизма?
Читал в HeadFirstJava -
ArrayList<Animals> "переменная" = new ArrayList<Dog>();
Вроде так можно, если Dog наследует Animas. Переменная класса родителя может ссылаться на объект дочернего класса. Или я что=то не так понял?
0
Ksenia VolkovaJava Developer в DXCMaster
11 декабря 2018, 10:31решение
Нельзя написать
Java будет ругаться. В угловых скобках справа должно быть либо то же, что слева, либо ничего (по умолчанию и так понятно).
Но вы все равно сможете добавить в ArrayList <Animal> объект класса Dog, если он наследуется от Animal.
+2