Урок 14. Generics. Wildcards. Параметризация в Java [Курсы Java с нуля]

  Рет қаралды 9,920

Artem Vorov

Artem Vorov

Күн бұрын

Пікірлер: 30
@whfcd
@whfcd 2 жыл бұрын
Однозначно один из лучших обзорных туториалов по дженерикам не только в рунете, но и вообще в целом. Максимально последовательно, грамотно, толково и доходчиво. Пример с билдером - просто сказка! Огромное спасибо за труд с:
@manOfPlanetEarth
@manOfPlanetEarth 2 жыл бұрын
да, видос хороший. но я вот с чем не могу разобраться: ни хрена не ясно как готовить ограничение типа и вайлдкарды🤷‍♂️ я НИ РАЗУ еще не видел четкого объяснения как правильно всё это использовать и в чем их смысл. потому что берется даже не обобщенный метод, у которого на входе и выходе, например, ArrayList и хрен пойми что писать на входе и на выходе в этих угловых скобках: List
@cloudname3666
@cloudname3666 4 жыл бұрын
Уф, это было сложно, пересматривал 3 раза видео, вроде что то понял. Спасибо за видос
@ilimsarykbaev5084
@ilimsarykbaev5084 4 жыл бұрын
Ай молодец, так доходчиво объяснил.
@aramzoryan
@aramzoryan 4 жыл бұрын
Надеюсь вся эта информация со временем систематизируется в голове. Пока такое ощущение, будто сунул голову в куст и пытаешься понять логику переплетения веточек.
@artemvorov
@artemvorov 4 жыл бұрын
На следующем уроке будем разбираться с коллекцией List.
@manOfPlanetEarth
@manOfPlanetEarth 2 жыл бұрын
Привет. 6:46 Так а в статических методах нельзя же использовать обобщенный тип из заголовка класса🤔
@artemvorov
@artemvorov 2 жыл бұрын
@@manOfPlanetEarth Да, всё верно. Я вроде и не говорил, что можно :) А дженерики для метода относятся и к статик и к нон-статик методам. Просто здесь был пример именно со статическими контекстом.
@manOfPlanetEarth
@manOfPlanetEarth 2 жыл бұрын
@@artemvorov сбило с толку одинаковое название обобщённого типа и в заголовке класса и в статическом методе. оказывается так можно. я не знал.
@manOfPlanetEarth
@manOfPlanetEarth 2 жыл бұрын
@@artemvorov я попробовал и понял: у обобщённых типов возможно перекрытие имён. что-то новое узнал сегодня🤔
@LAZIO14
@LAZIO14 Жыл бұрын
Спасибо! Но почему ты не показал как создавать метод of? У меня ошибка компиляции, когда я начал переписывать вой код)). Но я потом позже у тебя его увидел))
@TSAR_TOP
@TSAR_TOP 4 жыл бұрын
а я ещё думал, что урок по конструкторам непростой, как же я ошибался xD
@ASagaida
@ASagaida 4 жыл бұрын
Круто, спасибо. Жду с нетерпением продожения. P.S. Пример с билдером вызвал смешанные чувства :).
@ПавелК-ю9э
@ПавелК-ю9э 2 жыл бұрын
Спасибо. Задачку из Ката решил.
@kekwwwwk
@kekwwwwk Жыл бұрын
Не понял зачем использовать вайлдкард, если можно сделать параметризированый метод, где List тоже самое, что List
@vladimir8718
@vladimir8718 Жыл бұрын
как перейти в документацию в IDEA на MAC???
@TSAR_TOP
@TSAR_TOP 4 жыл бұрын
хорошо хоть комментарии Андрея Зорина везде есть, и логика переплетения веточек куста в голове xDDD
@artemvorov
@artemvorov 4 жыл бұрын
😂
@Stavr0gin_
@Stavr0gin_ 2 жыл бұрын
Для меня урок оказался очень сложным. Не понимаю связи метода simpleInit с методом init. Слишком много "T" в даймонд операторах. Я запутался. Пересмотрел видео раз 10 и перематывал, но увы... Артём, можно как-то на пальцах объяснить для чего нужен метод simpleInit?) Пример с билдером был лишним?) Честно признаюсь, Джаву пытаюсь понять уже больше года и когда смотрю на такие примеры как билдер, то понимаю, что до финиша еще далеко))
@artemvorov
@artemvorov 2 жыл бұрын
Разница между simpleInit и init только в возвращаемом типе. simpleInit у нас ничего не возвращает (void), внутри такого метода может проходить инициализация каких либо статических полей класса, например, если мы сделаем переменную instance статик, то сможем внутри метода simpleInit проинициализировать её: private static T instance; public static void simpleInit(T instantiator){ instance = instantiator; } Таким образом наш метод simpleInit становится обычным сеттером, только для статического контекста (статик переменной). Попробуй сделать переменную instance статиком и реализовать для неё метод set и get и после вызвать их в каком-то другом классе, где будет метод main.
@Stavr0gin_
@Stavr0gin_ 2 жыл бұрын
@@artemvorov, не выходит сделать private T instance статической. Бьет ошибку "non-static type variable T cannot be referenced from a static context"
@artemvorov
@artemvorov 2 жыл бұрын
@@Stavr0gin_ Я выбрал не самый удачный пример, Java в отличии от C# не позволяет хранить статические дженерик переменные. В данном случае в методе simpleInit нет особого смысла, я его добавлял что бы показать, как выглядит статик дженерик метод без возвращаемого типа (метод simpleInit) и с возвращаемым типом (метод init).
@Stavr0gin_
@Stavr0gin_ 2 жыл бұрын
@@artemvorov спасибо за ответы. Уже немного разобрался с дженериками
@5ir1u5
@5ir1u5 Жыл бұрын
это царь Дженериков
@kruvalgen2711
@kruvalgen2711 3 жыл бұрын
Это было зубодробительно....Думаю надо посмотреть раз 5-6, может что-то пойму
@louashby9085
@louashby9085 4 жыл бұрын
this is dark forest simple
@Ruslan-ps9rz
@Ruslan-ps9rz 2 жыл бұрын
а зачем вообще используются джененрики на практике и параметризированные типы?
@artemvorov
@artemvorov 2 жыл бұрын
Для этого добавил пример с билдером. Используя дженерики тебе не нужно создавать множество практически одинаковых классов или методов. Мы создали один класс билдер, который можно теперь использовать абсолютно с любым другим классом, если бы не было дженерика, тебе бы пришлось создавать такой билдер для каждого класса отдельно (Если мы возьмем, к примеру, 20 POJO классов, тебе нужно было бы создать 20 билдер-классов или 20 методов в одном билдере). Ещё один пример - коллекции, ты не придумываешь реализацию List для каждого объекта, ты просто пишешь List List List, не было бы дженериков приходилось бы либо использовать Object, что явно плохая идея, либо каждый раз имплементировать List для каждого нового класса.
@Ruslan-ps9rz
@Ruslan-ps9rz 2 жыл бұрын
@@artemvorov понял. Спасибо за ответ
@Ruslan-ps9rz
@Ruslan-ps9rz 2 жыл бұрын
Я вот просто на Qa Automation на java учусь понемногу по Вашим видео. Не знаю как в куа критично их досконально знать для создания тестовых классов. Так я понимаю дженерики в листах, хеш мапах. Ну вот посмотрел видео и так довольно сложная тема показалась.
А я думаю что за звук такой знакомый? 😂😂😂
00:15
Денис Кукояка
Рет қаралды 7 МЛН
UFC 310 : Рахмонов VS Мачадо Гэрри
05:00
Setanta Sports UFC
Рет қаралды 1,2 МЛН
Java SE. Урок 28. Generic / Параметризация / Обобщения
26:04
Generics In Java - Full Simple Tutorial
17:34
Coding with John
Рет қаралды 1,1 МЛН
Дженерики в Java. Проще чем кажется.
21:36
Игорь Мешалкин
Рет қаралды 20 М.
Секреты принципа PECS в Java: Урок 19 Часть 13
9:54
ExamClouds - Java Community
Рет қаралды 1,8 М.
Collections Framework и Generics
1:24:03
Computer Science Center
Рет қаралды 13 М.
А я думаю что за звук такой знакомый? 😂😂😂
00:15
Денис Кукояка
Рет қаралды 7 МЛН