Тёмный

Java. Для чего нужен Optional? 

Sergey Arkhipov Java Tutorials
Подписаться 20 тыс.
Просмотров 12 тыс.
50% 1

В этом видео рассказывается, когда и почему следует применять Optional при разработке на языке программирования Java.
Поддержать канал на Boosty:
boosty.to/arhitutorials
Наш чатик в Telegram:
t.me/ArhiTutorials
#arhitutorialsjava #ityoutubersru

Опубликовано:

 

16 фев 2023

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 57   
@dematix
@dematix 9 месяцев назад
Сергей, вы единственный кто может нормально объяснить непонятные вещи в java, огромное Вам Спасибо:)
@e-researcher
@e-researcher Год назад
Cool! И в сравнении с Kotlin показал, спасибо, что делишься знаниями. Знание того, что Optional расширяет систему типов ставит на место понимание вопроса.
@user-bn9wc8db6s
@user-bn9wc8db6s Год назад
Сергей, огромная благодарность!!!! Как всегда всё чётко и по делу👍👍👍
@Levitizen
@Levitizen Год назад
спасибо, все понятно и по делу
@user-pk8tz2oy6x
@user-pk8tz2oy6x Год назад
Спасибо. Раньше не задумывался о том, что var и var с возможностью вернуть null разные типы. Ключевой вывод для меня это, что класс optional расширяет систему типов java.
@Libra7by
@Libra7by Год назад
Спасибо за видео.
@georg.sabantchiev
@georg.sabantchiev Год назад
Классно объяснил 👍 Спасибо тебе!
@moygospodin7619
@moygospodin7619 Год назад
хорошее объяснение, спасибо, стало понятнее!
@denborgor
@denborgor Год назад
Cергей,большое спасибо за Ваши видео. Как всегда все доступно и понятно.
@Das.Kleine.Krokodil
@Das.Kleine.Krokodil 8 месяцев назад
Спасибо, отличный выпуск
@user-xc8dn1wz7t
@user-xc8dn1wz7t Год назад
Спасибо
@xlebylllek321
@xlebylllek321 10 месяцев назад
Спасибо огромное=) прям супер отлично объяснил) респект
@godzosioda
@godzosioda 2 месяца назад
Спасибо за полезное видео!
@mccokol7536
@mccokol7536 Год назад
Просто лайку занёс только за тему видео🔥 смотреть буду уже с idea в руках) Спасибо 🤝🏽
@user-og2ti2wd5o
@user-og2ti2wd5o 10 месяцев назад
спасибо!
@violetjellyfish2089
@violetjellyfish2089 Год назад
Люблю Ваш канал, всегда очень полезные видео, информация из которых хорошо запоминается
@user-yv5lm1qt9m
@user-yv5lm1qt9m Год назад
Хорошее видео👍
@rafailmuhamedshin7650
@rafailmuhamedshin7650 6 месяцев назад
Полезное видео. Теперь использую optional.
@mykhailobystryi4234
@mykhailobystryi4234 Год назад
Изначально мне казалось что я понимал для чего Optional. Что null это проблема на миллион долларов и т.д. , но я не мог понять почему Optional-у уделяют столько времени будто это что то более сложное в понимании. В общем пазл сложился, большое спасибо.
@mark_tatyschev
@mark_tatyschev Год назад
Optional для меня несмотря на простоту звучания на деле оказался совсем не прост. Так чтоб взять и с ходу его корректно реализовать, а не монструозить безполезные оборачивания :) Спасибо за видео, помогло приблизиться к пониманию.
@AlexJPep
@AlexJPep 3 месяца назад
Про чтение плюсую! В этом смысле Kotlin очень огорчил... На java код ревью приятнее читается.
@user-vt4zr1ix9f
@user-vt4zr1ix9f 4 месяца назад
Актуальная тема для меня. Где-то в коде закралась ошибка NullPointerException
@user-or9je4ln6p
@user-or9je4ln6p Год назад
Тоже жил с таким замком, но мне повезло больше) Я жил на первом этаже и у меня был друг который влезал в форточку😂
@shluhogon_42
@shluhogon_42 Год назад
Кто-то спрашивает для чего нужен Optional? А я спрашиваю что такое Optional?
@user-ey3kx3oi4j
@user-ey3kx3oi4j Год назад
Хоть кто-то нормально объяснил... Спасибо.
@Das.Kleine.Krokodil
@Das.Kleine.Krokodil 8 месяцев назад
Правильно я понимаю, что Optional можно использовать ТОЛЬКО чтобы лаконично обработать значение используя map, filter ? Т.е. даже если null не предполагается
@arhitutorials
@arhitutorials 8 месяцев назад
Не ну конечно можно использовать для чего угодно) Но я считаю, что имеет смысл использовать только там, где в качестве значения возможен null.
@Das.Kleine.Krokodil
@Das.Kleine.Krokodil 8 месяцев назад
Делаете ли вы входные параметры типа Optional у функций ?
@ArtemArtem-dx4ql
@ArtemArtem-dx4ql 7 месяцев назад
не стоит так делать. Лучше обработать это внутри метода, например, тернарным оператором, и установить конкретное значение, если аргумент будет null. Или вариант перегрузить метод с определенной сигнатурой, чтобы вообще не допускать null
@userpupkin499
@userpupkin499 Год назад
В советские времена запасной ключ на этот случай ключ просто хранился у соседей по подъезду)) Или можно ножиком было поддеть язычок)) А так, спасибо!
@arhitutorials
@arhitutorials Год назад
А если сосед выйдет и тоже случайно захлопнет дверь, то получится deadlock)
@userpupkin499
@userpupkin499 Год назад
@@arhitutorials))) маловероятное событие) Тогда взлом в виде просунутого в дверь ножичка)
@userpupkin499
@userpupkin499 Год назад
@@arhitutorialsКстати, в Котлин неявный вывод типов вымораживает. Что им, жалко явно тип написать? Сидишь, гадаешь, что за тип у переменной в итоге. Путаница возникает. Может, не привык еще.
@yuriytheone
@yuriytheone 11 месяцев назад
​@@userpupkin499 просто kotlin переоценен... Красивее и лаконичнее C++ ещё ничего нет...
@Das.Kleine.Krokodil
@Das.Kleine.Krokodil 8 месяцев назад
@@yuriytheone скорее недооценен, пока что
@caffeinejavacode1475
@caffeinejavacode1475 Год назад
Spring Data
@Jilexa
@Jilexa 2 месяца назад
ну т.е. просто условие было заменено на лямбда выражение и это типа лучше читается и лучше работает?
@arhitutorials
@arhitutorials 2 месяца назад
Простое условие можно забыть написать, а с optional это невозможно.
@Jilexa
@Jilexa 2 месяца назад
@@arhitutorials понял, т.е. проверка при компиляции. Этот акцент я наверное упустил из видео.
@arhitutorials
@arhitutorials 2 месяца назад
@@Jilexa не при компиляции, а при написании кода. Из метода возвращается Optional, а значение из него еще предстоит извлечь. Если использовать для извлечения значения метод orElse(), то аварийной ситуации с отсутствием элемента не может возникнуть в принципе.
@BagginsFedor
@BagginsFedor Год назад
звук не очень в этот раз что-то. могу посоветовать adobe podcast /enhance, автоматически для таких случаев ии улучшает звук
@Das.Kleine.Krokodil
@Das.Kleine.Krokodil 8 месяцев назад
А для чего нужен Optional.ofNullable(x), почему нее хватает Optional.of(x) ? Ведь сам тип Optional предполагает null
@ArtemArtem-dx4ql
@ArtemArtem-dx4ql 7 месяцев назад
потому что of() вернет тебе исключение, если ты нарочно передашь ему null. ofNullable() позволяет этого избежать
@Das.Kleine.Krokodil
@Das.Kleine.Krokodil 7 месяцев назад
​@@ArtemArtem-dx4qlэто да, но у меня вопрос для чего так сделали в java
@ArtemArtem-dx4ql
@ArtemArtem-dx4ql 7 месяцев назад
​@@Das.Kleine.Krokodil потому, что of - для создания нового обьекта, а ofNullable для обертки существующей переменной с возможным null. of как фабричный метод имеет более короткое имя, в отличии от служебного ofNullable
@Das.Kleine.Krokodil
@Das.Kleine.Krokodil 7 месяцев назад
@@ArtemArtem-dx4ql у меня вопрос в другом. Для чего так сделано в языке если изначально optional предназначен для работы с null. Почему недостаточно of
@ArtemArtem-dx4ql
@ArtemArtem-dx4ql 7 месяцев назад
​@@Das.Kleine.KrokodilПотому что с ofNullable бывает удобнее. Я написал для чего эти методы на самом деле нужны. Optional это просто класс, у которого есть приватный конструктор внутри и он с помощью методов of и empty устанавливает новый обьект либо с null внутри , либо с переданным значением. То есть тут всего два состояния. ofNullable реализован с помощью тернарного оператора, поэтому возвращает пустой обьект если передал ему null, либо обьект с установленным значением. Это просто удобно, когда ты ДОПУСКАЕШЬ получение null. А вот если null не нужен, то of
@UserUser-yk9bt
@UserUser-yk9bt 3 месяца назад
Короче для того, чтобы просто напомнить прогеру, что может вернуться null ну такое... Строчек кода столько же! А использование map для сокрытия NPE за такое вообще убивать мало!!! Аж закипел! Это как раз причина когда user жмет кнопку и ничего не происходит, он орет на всех и вся, а прогер и тестер не могут понять почему!!! А это "Вася" обработал NPE через Optional😏😏😁 👿"
@JayDi85
@JayDi85 3 месяца назад
Минус поставил. Вместо того, чтобы делать везде стандартную проверку на null -- автор предлагает везде эти левые Optional вставлять. Да не просто везде, а лишь в половине случаев, создавая новый уровень абстракции. Причем код с Optional становится сложнее для всего: для написания, для чтения, для отладки. Не делайте так никогда. Чем проще код -- тем лучше для всех.
@arhitutorials
@arhitutorials 3 месяца назад
Это не я придумал, это стандартная фича языка. Я лишь объяснил почему и для чего она появилась.
@locky1827
@locky1827 Год назад
java еще не умерла? Может что про Котлин?
@Onneaanable
@Onneaanable Год назад
Зачем вообще Java если есть Golang и Rust. Если только старое корочить.
@yuriytheone
@yuriytheone 11 месяцев назад
Golang? 😂😂😂😂 Kotlin? 😂😂😂😂 Мальчик, иди домашку делай! А, что про python не вспомнил? 😂😂😂
@yuriytheone
@yuriytheone 11 месяцев назад
11:59 это потому, что в C++ объекты передаются через указатель или ссылку и единственный способ проверки указателя - проверка на 0 или alias NULL ... Так как архитекторы java имели только бекграунд C++ то Null так же перекочевал в java... Даже несмотря на то, что java не имеет указателей... Ну, это - инертность сознания или "язык определяет образ мышления". В любом случае лишняя проверка на Null всё лучше чем дичь с выбрасыванием исключений по поводу и без.
@Das.Kleine.Krokodil
@Das.Kleine.Krokodil 8 месяцев назад
"лишняя проверка на Null" Чьими силами?
Далее
Java. Enum на примерах.
18:34
Просмотров 8 тыс.
Java. Разбираемся с монадами.
20:20
Я НЕ УМЕЮ СНИМАТЬ ТАКИЕ ВИДЕО
00:16
Hidden Beauties of Java Enums
22:20
Просмотров 9 тыс.
RxJava. Неформальное введение.
23:15
Java. Задачка с собеседования.
5:31
Что нового в JDK 21
52:37
Просмотров 7 тыс.
Что такое Java и как ее выучить?
19:55
Я НЕ УМЕЮ СНИМАТЬ ТАКИЕ ВИДЕО
00:16