Java для Android-разработчиков — #12 — Generics

Автор Alla Bessonova
Java для Android-разработчиков — #12 — Generics

Всем привет на связи.

Дмитрий Гордеев и курс Java для Android разработчиков налоги сегодня. Давайте поговорим о дженериках прошлый раз на уроке про коллекциях. Я думаю вы обратили внимание на такие угловые скобки там лист от integer, что — это такое.

Давай представим, что мы сами проектируем classlist ie11 classlist которые есть методы.

Адыгея но. Какого типа параметры должны быть мы же не знаю, что там будет строки. Интер или, что ещё не знаю какой тип. Мы конечно можно описать вот так вот объекта объекта базовый класс для всех. Ты когда нас 1 класс. Сенина следом его неоткого как номер. ВТБ лист он всегда наследуется от объекта в соответствии все остальные они тоже являются потомками объекта. Вот и соответственно мы пишем. Так мы всегда можем передать. Любой объект в чём проблема. Проблема в том, что когда мы теперь будем этим пользоваться вот смотрите. Мы создали в лист засунули туда строку, а потом она прям можно написать. Вот так BTS гет и попробовать результат записать в целое число естественно получим кряж потому, что реально там лежит строка. Кроме того. Проблема в том, что в этот метод возвращает обжиг соответственно если мы хотим теперь его записать в переменную какого-то другого типа даже если — это правильная типа там всегда нужно использовать вот эту операцию приведение типов — это выглядит некрасиво зарядку чтобы решить эту проблему придумали дженерики дженерик — это так называемая параметризованный тип то есть — это класс с параметром вот смотрите как — это пишется вот у нас теперь есть класс майлис параметризованные типы рты теперь. Вот наши методы егет они работают не субъектом с этим самым тёплым т и когда мы уже создаем объекты My list мукаддам какой именно тип. Мы хотим здесь видеть — это значит допустим здесь мы снимали строк и туда мы засовываем срок вычитаем оттуда сроков работает типа безопасно. Я имею безопасного с точки зрения текст хорошо у этих самых дженериков есть некоторые ограничения нельзя использовать примитивные типа только объектами то есть нельзя написать. Вот так вот на 19 строке. Зато можно писать. Мы едем на 20 строке смотрите допустим у нас же Class string он наследует от объекта поэтому например когда он на меня есть какая-то переменная типа string. Я могу её присвоить создать типа объект и присвоить у неё наши объекты типа string not дженериками так не работает допустим я создал Disney лист от объекта. А до этого довёл на 15. Трофима рестайлинга и по идее может показаться, что мы можем здесь осуществить присваивании, но нет же реками так не. Мой лист от любых разных типов — это всегда разные типы. Независимости от того находится ли параметры в одной рахили нет на string без этого еще не следует что. Мой лист от тренинга будет наследоваться от моей листа проекта Java считать абсолютно разными типами и вот такой присваивания как на 24 строки осуществлять нельзя шлейка на со мной может быть много параметров как например стандартным интерфейсом и. Кроме этого параметрами могут быть тоже параметризованные типы тут может быть на самом ли выражение любое слово и. Кроме того дженериками могут быть не целым класса. Я просто отдельные методы вот так вот объявляется generic Method метод может быть произвольный параметр есть потом мы будем вызывать вот так вот generic можно сделать, а потому, что она же мем. Так мы не можем назвать обычные методы generic Method там например вот так вот и теперь реально вызывается метод и где-то будет — это string и наконец ещё одна штука про дженерики. Там могут быть ограничения во-первых. Я хотел сказать, что не обязательно всегда называть параметрами буквы просто так исторически сложилось тут может быть любая буква или даже несколько букв любое имя применима в языке Java Chrome этот параметр можно накладывать ограничения например в этот параметр C может быть любым типом, а только эти таким которые реализуют интерфейс Collection то есть мы захотим вызвать вот этот метод Static не знаю от 2 строк ты ничего не получится потому, что потому, что посмотрим на ошибку то Java скажет, что ребят на параметры наложено ограничение вы не можете здесь использовать строку. А если мы здесь напишем лист. Как там. Вот так например вот так вот и попробуй передать лист проктолог сейчас работает на. Шелеста реализует интерфейс лет который в свою очередь наследуют Collection соответствия этот объект попадает под ограничения наложены номинация собственно там есть кое-какие ещё дополнительно тема пружины. Рено — это уже будет правильно предложение об. Всё Всем удачи. Наш курс постепенно близится к завершению ставьте лайки подписывайтесь на канал и жду вас на завершающих уроках.

0 комментариев
0

Читайте также