Java Разработка | Spring Boot Backend & Architecture. Программирование на Джава для Developer. IT Собеседования, Алгоритмы и Coding задачи. Уроки и курсы для роста в Tech.

@bookjava
🔥 Почему Optional в Java – не просто контейнер! Сегодня разберём важную тему: Optional в Java – это не просто удобный способ избежать null, но и мощный инструмент для работы с потоками данных. 🚀 Как правильно использовать Optional? 1️⃣ Избегаем null-чеков Раньше код был полон if (obj != null), но теперь: Optional<String> name = Optional.ofNullable(user.getName()); name.ifPresent(System.out::println); Это делает код чище и понятнее. 2️⃣ Комбинируем с map() и flatMap() Если у нас есть объект, внутри которого другой объект, а внутри него – ещё один, Optional поможет избежать вложенных if-else: Optional<String> city = Optional.ofNullable(user) .map(User::getAddress) .map(Address::getCity); Всё элегантно и лаконично! 3️⃣ Используем orElse() и orElseGet() правильно ❌ Антипаттерн – всегда выполняет new Object(): User user = optionalUser.orElse(new User()); ✅ Лучше так – orElseGet() вызовется только если optionalUser пуст: User user = optionalUser.orElseGet(User::new); Это особенно важно, если объект тяжёлый в создании. 4️⃣ orElseThrow() – избавляемся от null вообще Когда отсутствие значения – это ошибка, не бойтесь выбрасывать исключение: User user = optionalUser.orElseThrow(() -> new RuntimeException("User not found")); Это делает код безопаснее! ❌ Когда не стоит использовать Optional? - В полях сущностей (например, JPA) – это может ухудшить производительность. - Для коллекций – лучше возвращать пустую коллекцию, а не Optional<List<T>>. 👉 @BookJava
Если у вас установлено приложение,
вы можете сразу перейти в канал