Cool! И в сравнении с Kotlin показал, спасибо, что делишься знаниями. Знание того, что Optional расширяет систему типов ставит на место понимание вопроса.
Изначально мне казалось что я понимал для чего Optional. Что null это проблема на миллион долларов и т.д. , но я не мог понять почему Optional-у уделяют столько времени будто это что то более сложное в понимании. В общем пазл сложился, большое спасибо.
Спасибо. Раньше не задумывался о том, что var и var с возможностью вернуть null разные типы. Ключевой вывод для меня это, что класс optional расширяет систему типов java.
Optional для меня несмотря на простоту звучания на деле оказался совсем не прост. Так чтоб взять и с ходу его корректно реализовать, а не монструозить безполезные оборачивания :) Спасибо за видео, помогло приблизиться к пониманию.
Спасибо за видео. Очень позновательно и полезно. Один вопрос остался, почему используете map() вместо isPresent(). Обратил внимание ещё в прошлом видео
не стоит так делать. Лучше обработать это внутри метода, например, тернарным оператором, и установить конкретное значение, если аргумент будет null. Или вариант перегрузить метод с определенной сигнатурой, чтобы вообще не допускать null
@@alexandrkomar4741 это не канал, а группа для общения. Сделал ее закрытой чтоб остановить нашествие ботов. Зайти можно по ссылке: t.me/+TH9AoBq_ct6RYZgz
Правильно я понимаю, что Optional можно использовать ТОЛЬКО чтобы лаконично обработать значение используя map, filter ? Т.е. даже если null не предполагается
@@Jilexa не при компиляции, а при написании кода. Из метода возвращается Optional, а значение из него еще предстоит извлечь. Если использовать для извлечения значения метод orElse(), то аварийной ситуации с отсутствием элемента не может возникнуть в принципе.
@@Das.Kleine.Krokodil потому, что of - для создания нового обьекта, а ofNullable для обертки существующей переменной с возможным null. of как фабричный метод имеет более короткое имя, в отличии от служебного ofNullable
@@ArtemArtem-dx4ql у меня вопрос в другом. Для чего так сделано в языке если изначально optional предназначен для работы с null. Почему недостаточно of
@@Das.Kleine.KrokodilПотому что с ofNullable бывает удобнее. Я написал для чего эти методы на самом деле нужны. Optional это просто класс, у которого есть приватный конструктор внутри и он с помощью методов of и empty устанавливает новый обьект либо с null внутри , либо с переданным значением. То есть тут всего два состояния. ofNullable реализован с помощью тернарного оператора, поэтому возвращает пустой обьект если передал ему null, либо обьект с установленным значением. Это просто удобно, когда ты ДОПУСКАЕШЬ получение null. А вот если null не нужен, то of
Довольно долго пишу на js и на java. Так вот я не помню когда последний раз js падал в рантайме из-за того, что где-то не тот тип в переменную засунули, хотя я такие говнопроекты видал, где имена переменным давали по типу "strokaA strokaB" и т.д.
@@arhitutorials хз куда ты расходиться собрался и зачем, я просто мнение высказал. Я не считаю, что типизация не нужна, тем более что сейчас мой стек это ts+java
@@arhitutorialsКстати, в Котлин неявный вывод типов вымораживает. Что им, жалко явно тип написать? Сидишь, гадаешь, что за тип у переменной в итоге. Путаница возникает. Может, не привык еще.
Минус поставил. Вместо того, чтобы делать везде стандартную проверку на null -- автор предлагает везде эти левые Optional вставлять. Да не просто везде, а лишь в половине случаев, создавая новый уровень абстракции. Причем код с Optional становится сложнее для всего: для написания, для чтения, для отладки. Не делайте так никогда. Чем проще код -- тем лучше для всех.
Короче для того, чтобы просто напомнить прогеру, что может вернуться null ну такое... Строчек кода столько же! А использование map для сокрытия NPE за такое вообще убивать мало!!! Аж закипел! Это как раз причина когда user жмет кнопку и ничего не происходит, он орет на всех и вся, а прогер и тестер не могут понять почему!!! А это "Вася" обработал NPE через Optional😏😏😁 👿"
11:59 это потому, что в C++ объекты передаются через указатель или ссылку и единственный способ проверки указателя - проверка на 0 или alias NULL ... Так как архитекторы java имели только бекграунд C++ то Null так же перекочевал в java... Даже несмотря на то, что java не имеет указателей... Ну, это - инертность сознания или "язык определяет образ мышления". В любом случае лишняя проверка на Null всё лучше чем дичь с выбрасыванием исключений по поводу и без.
Сергей, вы единственный кто может нормально объяснить непонятные вещи в java, огромное Вам Спасибо:)
А Алишев не может?
Cool! И в сравнении с Kotlin показал, спасибо, что делишься знаниями. Знание того, что Optional расширяет систему типов ставит на место понимание вопроса.
Сергей, огромная благодарность!!!! Как всегда всё чётко и по делу👍👍👍
Good explanation!
Cергей,большое спасибо за Ваши видео. Как всегда все доступно и понятно.
Спасибо за полезное видео!
Изначально мне казалось что я понимал для чего Optional. Что null это проблема на миллион долларов и т.д. , но я не мог понять почему Optional-у уделяют столько времени будто это что то более сложное в понимании. В общем пазл сложился, большое спасибо.
Спасибо, отличный выпуск
хорошее объяснение, спасибо, стало понятнее!
Спасибо. Раньше не задумывался о том, что var и var с возможностью вернуть null разные типы. Ключевой вывод для меня это, что класс optional расширяет систему типов java.
Полезное видео. Теперь использую optional.
Спасибо огромное=) прям супер отлично объяснил) респект
Классно объяснил 👍 Спасибо тебе!
Спасибо за видео.
Люблю Ваш канал, всегда очень полезные видео, информация из которых хорошо запоминается
Optional для меня несмотря на простоту звучания на деле оказался совсем не прост. Так чтоб взять и с ходу его корректно реализовать, а не монструозить безполезные оборачивания :) Спасибо за видео, помогло приблизиться к пониманию.
спасибо!
Про чтение плюсую! В этом смысле Kotlin очень огорчил... На java код ревью приятнее читается.
Спасибо за видео. Очень позновательно и полезно. Один вопрос остался, почему используете map() вместо isPresent(). Обратил внимание ещё в прошлом видео
Наверно я в от момент думал о монадах)
Просто лайку занёс только за тему видео🔥 смотреть буду уже с idea в руках)
Спасибо 🤝🏽
спасибо, все понятно и по делу
Спасибо
Кто-то спрашивает для чего нужен Optional? А я спрашиваю что такое Optional?
Хорошее видео👍
Делаете ли вы входные параметры типа Optional у функций ?
не стоит так делать. Лучше обработать это внутри метода, например, тернарным оператором, и установить конкретное значение, если аргумент будет null. Или вариант перегрузить метод с определенной сигнатурой, чтобы вообще не допускать null
Тоже жил с таким замком, но мне повезло больше) Я жил на первом этаже и у меня был друг который влезал в форточку😂
Здравсвуйте. Не находит ваш тг канал. Вы его удалили?
@@alexandrkomar4741 это не канал, а группа для общения. Сделал ее закрытой чтоб остановить нашествие ботов.
Зайти можно по ссылке:
t.me/+TH9AoBq_ct6RYZgz
Правильно я понимаю, что Optional можно использовать ТОЛЬКО чтобы лаконично обработать значение используя map, filter ?
Т.е. даже если null не предполагается
Не ну конечно можно использовать для чего угодно) Но я считаю, что имеет смысл использовать только там, где в качестве значения возможен null.
ну т.е. просто условие было заменено на лямбда выражение и это типа лучше читается и лучше работает?
Простое условие можно забыть написать, а с optional это невозможно.
@@arhitutorials понял, т.е. проверка при компиляции. Этот акцент я наверное упустил из видео.
@@Jilexa не при компиляции, а при написании кода. Из метода возвращается Optional, а значение из него еще предстоит извлечь. Если использовать для извлечения значения метод orElse(), то аварийной ситуации с отсутствием элемента не может возникнуть в принципе.
Актуальная тема для меня. Где-то в коде закралась ошибка NullPointerException
Хоть кто-то нормально объяснил... Спасибо.
А для чего нужен Optional.ofNullable(x), почему нее хватает Optional.of(x) ?
Ведь сам тип Optional предполагает null
потому что of() вернет тебе исключение, если ты нарочно передашь ему null. ofNullable() позволяет этого избежать
@@ArtemArtem-dx4qlэто да, но у меня вопрос для чего так сделали в java
@@Das.Kleine.Krokodil потому, что of - для создания нового обьекта, а ofNullable для обертки существующей переменной с возможным null. of как фабричный метод имеет более короткое имя, в отличии от служебного ofNullable
@@ArtemArtem-dx4ql у меня вопрос в другом. Для чего так сделано в языке если изначально optional предназначен для работы с null. Почему недостаточно of
@@Das.Kleine.KrokodilПотому что с ofNullable бывает удобнее. Я написал для чего эти методы на самом деле нужны. Optional это просто класс, у которого есть приватный конструктор внутри и он с помощью методов of и empty устанавливает новый обьект либо с null внутри , либо с переданным значением. То есть тут всего два состояния. ofNullable реализован с помощью тернарного оператора, поэтому возвращает пустой обьект если передал ему null, либо обьект с установленным значением. Это просто удобно, когда ты ДОПУСКАЕШЬ получение null. А вот если null не нужен, то of
Довольно долго пишу на js и на java. Так вот я не помню когда последний раз js падал в рантайме из-за того, что где-то не тот тип в переменную засунули, хотя я такие говнопроекты видал, где имена переменным давали по типу "strokaA strokaB" и т.д.
Ну значит типизация не нужна, расходимся)
@@arhitutorials хз куда ты расходиться собрался и зачем, я просто мнение высказал. Я не считаю, что типизация не нужна, тем более что сейчас мой стек это ts+java
В советские времена запасной ключ на этот случай ключ просто хранился у соседей по подъезду))
Или можно ножиком было поддеть язычок))
А так, спасибо!
А если сосед выйдет и тоже случайно захлопнет дверь, то получится deadlock)
@@arhitutorials))) маловероятное событие) Тогда взлом в виде просунутого в дверь ножичка)
@@arhitutorialsКстати, в Котлин неявный вывод типов вымораживает. Что им, жалко явно тип написать? Сидишь, гадаешь, что за тип у переменной в итоге. Путаница возникает. Может, не привык еще.
@@userpupkin499 просто kotlin переоценен... Красивее и лаконичнее C++ ещё ничего нет...
@@yuriytheone скорее недооценен, пока что
звук не очень в этот раз что-то. могу посоветовать adobe podcast /enhance, автоматически для таких случаев ии улучшает звук
Spring Data
Минус поставил. Вместо того, чтобы делать везде стандартную проверку на null -- автор предлагает везде эти левые Optional вставлять. Да не просто везде, а лишь в половине случаев, создавая новый уровень абстракции. Причем код с Optional становится сложнее для всего: для написания, для чтения, для отладки. Не делайте так никогда. Чем проще код -- тем лучше для всех.
Это не я придумал, это стандартная фича языка. Я лишь объяснил почему и для чего она появилась.
Короче для того, чтобы просто напомнить прогеру, что может вернуться null ну такое... Строчек кода столько же! А использование map для сокрытия NPE за такое вообще убивать мало!!! Аж закипел! Это как раз причина когда user жмет кнопку и ничего не происходит, он орет на всех и вся, а прогер и тестер не могут понять почему!!! А это "Вася" обработал NPE через Optional😏😏😁 👿"
java еще не умерла? Может что про Котлин?
Зачем вообще Java если есть Golang и Rust. Если только старое корочить.
Golang? 😂😂😂😂 Kotlin? 😂😂😂😂 Мальчик, иди домашку делай! А, что про python не вспомнил? 😂😂😂
11:59 это потому, что в C++ объекты передаются через указатель или ссылку и единственный способ проверки указателя - проверка на 0 или alias NULL ... Так как архитекторы java имели только бекграунд C++ то Null так же перекочевал в java... Даже несмотря на то, что java не имеет указателей... Ну, это - инертность сознания или "язык определяет образ мышления". В любом случае лишняя проверка на Null всё лучше чем дичь с выбрасыванием исключений по поводу и без.
"лишняя проверка на Null"
Чьими силами?