MXStat
MXStat
Введите текст для поиска
Расширенный поиск каналов
  • Вход на сайт
  • Каталог
    Каталог каналов Региональные подборки Поиск каналов
    Добавить канал
  • Рейтинги
    Рейтинг каналов Рейтинг публикаций
    Рейтинги брендов и персон
  • Аналитика
  • Поиск по публикациям
  • Мониторинг Max
Java

27 Jun, 18:33

Открыть в Max Поделиться

🖥 В Java длинные цепочки вроде `user → address → city` легко превращаются в ловушку для `NullPointerException`.
Обычный вариант быстро разрастается:
User user = userRepository.findByEmail(email);

if (user != null) {
    Address address = user.getAddress();
    if (address != null) {
        return address.getCity();
    }
}
return "unknown";
Проблема не только в количестве строк.

В таких вложенных if легко забыть один уровень проверки и получить NPE в самом неожиданном месте.
С Optional это можно записать короче и безопаснее:
return userRepository.findByEmail(email)
    .map(User::getAddress)
    .map(Address::getCity)
    .orElse("unknown");
Каждый map() выполняется только если предыдущее значение существует.
Если пользователя нет, адреса нет или город не задан - цепочка спокойно дойдёт до orElse().
Для таких случаев Optional хорошо работает как способ явно показать:
значение может отсутствовать, и это нормальная часть логики.

Главное не превращать Optional в новую религию.
Он особенно полезен на границах методов и в цепочках, где каждый следующий шаг может вернуть null.

242 9
Каталог
Каталог каналов Подборки каналов Поиск каналов Добавить канал
Рейтинги
Рейтинг каналов Max
Контакты
Написать в Max Написать в Telegram Написать на почту
Всякая всячина
Пользовательское соглашение Политика конфиденциальности
Наши каналы
MXStat в Telegram MXStat в Max
Наши боты
MXAuthBot MXAnalyticsBot
Made by TGStat