Разбирал код программы и немного смутился на мейне .
Растолкуйте почему мы в мейне не делаем такого :
List<Pet> pip = new LinkedList<>(Util.getPets());
List<Sayable> say = new LinkedList<>(Util.convertPetToSayable(pip));
Util.printDialog(say);
а создаем новые коллекции без new ? Как это работает ?
Павел Медведев
35 уровень
Про main
Решен
Комментарии (5)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Денис Enterprise Java Developer
10 ноября 2019, 22:48полезный
У обоих методов, getPets и convertPetToSayable есть возвращаемый тип (Посмотри внимательно сигнатуры методов в классе Util). Так уж получилось что этот тип уже соответствует типу переменной в которую ты хочешь этот список положить. Нет никакого смысла делать дополнительные телодвижения, ведь вызов метода фактически возвращает тебе уже готовый объект нужного типа.
+1
Ksenia Volkova Java Developer в DXC Master
10 ноября 2019, 14:32полезный
А зачем нам так делать?
У нас уже есть утилитный класс с методами, возвращающими коллекции. Зачем нужно эти коллекции засовывать в конструктор и получать коллекцию на основе уже имеющейся коллекции? Это было бы как-то избыточно...
В самих методах getPets(), convertPetToSayable() уже есть new
+2
Павел Медведев
10 ноября 2019, 14:53
Ога т.е. если у нас в методе есть логика создания то мы можем просто вызвать данный метод при этом указав имя ?А с классами это можно провернуть например через локальный класс или через анонимный класс который вложен в метод который в свою очередь принимает например стрингу с именем нового класса и возвращает уже созданный клас обработанный какой нибудь логикой ?
0
Ksenia Volkova Java Developer в DXC Master
10 ноября 2019, 15:09
Не очень поняла вопрос, если честно.
Ты имеешь в виду что-то вроде паттерна Factory?
0
Павел Медведев
12 ноября 2019, 16:51
туплю туплю , еще раз пересмотрел примеры с лекции и нашёл там свой ответ ) Спасибо
0