Optional

preview_player
Показать описание


Рекомендации по теме
Комментарии
Автор

Отличная подача. Все очень подробно и доходчиво объясняется.

-rikki-tikki-tavi-
Автор

Спасибо Вам за труд! Интересно, доходчиво, всё по полочкам!

АлександрШашев-ъч
Автор

@Oleksandr Tsymbaliuk крайне недооцененный канал! Спасибо огромное!

oldjohn
Автор

Александр, спасибо Вам огромное за такой качественный контент!
Огромный плюс Ваших уроков это детальный разбор Stream API - чего не встретишь на других (даже платных) источниках Youtube и Udemy.

АнтонУжва-дл
Автор

Самое лучшее, понятное и подробное объяснение опшинал, а я их за сегодня много посмотрел :))). Спасибо огромное!

filidorZeliony
Автор

Тема раскрыта очень подробно) Спасибо! Ждём видео по Стрим

АлексейТроць
Автор

Мне кажется вам надо проводить мастер классы: как создавать обучающий видео-контент. Удивительно, насколько вы всё чётко и подробно объясняете, демонстрируете на примерах. Задаюсь вопросом, что мотивирует вас делать такую работу и отдавать её на безвозмездной основе.

АлександрГригоренко-гк
Автор

Класс! Зашёл ещё раз посмотреть про лямбда-выражения и ссылки на методы, чтобы лучше в голове уложилось (пока так себе уложилось), и наткнулся на Optional. Спасибо за доходчивое знакомство с ним, полезный класс.

Sanchio
Автор

Большое Спасибо! Очень подробная лекция!

olyalya
Автор

Позволю себе в конструктивной манере обозначить моменты к доработке:

1. a) 26:06 про Filter сказано очень скомканно.

2. Всю лекцию звучит "ссылка". Я сначала не понял, о каких ссылках постоянно идет речь. Оказывается, речь о значении, которое содержит класс Optional. У Хорстманна постоянный термин optional value, и он естественнен. Понятно, что что не примитив, то ссылка, но непонятен такой выбор слова для значения из Optional.

3. В презентации очень много инфинитивов в третьем лице: привет спряжению глаголов. Тяжело читать.
Также почти не отделяются запятыми подчиненные предложения. Эти два момента - бич и всех остальных презентаций:) Речь не о глубинах русского языка, это самая поверхность, так что можно понять очень быстро:))
В дальнейшем (как устроюсь на работу) готов научить автора этим совершенно несложным моментам на примере его же презентации. Могу и сам поправить все презентации, но лучше автору закрыть эти пробелы.

4. Концептуальное☝🏼 замечание. Лучше бы придерживаться последовательности объяснения почти как у Хорстмана:

a)Сначала рассказать как создавать Optional:

таблица с:
empty
of
ofNullable (как мост между empty и of)

Неплохо бы здесь рассказать, что у Optional есть два состояния: с полезным значением и пустой. Этот null сильно сбивает с толку. вернёт true. И в дальнейшем все мапы и флэтмапы и ифпрезенты срабатывают, если Optional не пустой. Точка. А не когда "значение ссылки в Optional не равно null".

b) Потом рассказать о том, как правильно использовать Optional:
b.1) получение значения из Optional с созданием значения по умолчанию, если Optional пустой.

для этого надо свести в одну таблицу методы:
orElse
orElseGet
orElseThrow(exception supplier)
orElseThrow
or <- его логическое место именно в этой таблице.

b.2) Модификация значения из Optional, если Optional не пустой, и ничего не делание, если Optional пустой.

Приводится таблица с методами:
ifPresent
ifPresentOrElse
map
flatMap
filter

c) Потом рассказать, почему isPresent() и get() - туфта. Это будет сказ о неправильном использовании Optional.

d) Бахнуть пару слайдиков с примерами на flatMap (method chaining) и Optional.stream() (как перевести Stream<Optional<T>> в Stream<T>).
Прямо у Хорстмана взять. У него отличные примеры. И ученики пусть уже хотя бы глазами привыкают к стримам.

И тем не менее, я по-прежнему КРАЙНЕ благодарен автору за эту лекцию:
1. я прочитал презентацию -> прочитал главу у Кея, сравнивая с презентацией автора и пробуя ручками разные моменты -> итого, я неплохо повторил и подсистематизировал эту тему для себя. Это мой профит.
2. я написал довольно длинный комментарий -> итого, я опять неплохо подсистематизировал эту тему для себя. Это снова мой профит:)
Без этой лекции такого профита не было бы:) Так что, может, стоит и отозвать пункт 4:))

//на всё потрачено два дня:) Хотя казалось бы: "Это же просто Optional":))
А завтра по-хорошему надо бы еще прочитать про Optional на докс.оракл.

manOfPlanetEarth
Автор

Благодарю за видео, правда очень жаль, что нет на последнем слайде заданий как в следующих видео, они классные!

РоманИванов-ъз
Автор

Очень качественное обучающее видео!
Но самое лучшее - это плейлист с алгоритмами на java на вашем канале. Будет ли в этом плейлисте алгоритмы нахождения кратчайшего пути, Дейкстры или А* ?

IIJustIIsicariusII
Автор

7:54 почему метод возвращает ссылки? это же не список

СергейТимофеев-пн
Автор

Автор (и знатоки), я вот чего не могу понять. У метода ifPresent есть один аргумент - интерфейс Consumer. Его абстрактный метод возвращает void.

Вопрос: почему можно консьюмеру
присвоить ссылку на метод, возвращающий не войд? Например, boolean, как делает метод add в интерфейсе List.


import java.util.*;

class I{
public static void main (String[] args)
{
List<Integer> list = new ArrayList<>();
Optional<Integer> opt = Optional.of(5);

opt.ifPresent(list::add);
}
}

manOfPlanetEarth
Автор

Автор, что-то по ссылке в доке всё слабо описано по сравнению с вашей лекцией, откуда всё таки черпаете информацию для лекций?

AlexGrimaldo-trdp
welcome to shbcf.ru