Встречается на собеседованиях • сегодня

В чем разница между Optional и проверкой Nullable через if/else

Optional - это контейнерный объект, который может содержать или не содержать значение, предоставляя более элегантный и функциональный способ обработки возможного null. Основные отличия от if/else:

  1. Явность: Optional явно показывает, что значение может отсутствовать
  2. Функциональный стиль: позволяет использовать методы map(), filter(), orElse()
  3. Защита от NPE: не дает забыть проверить на null

Пример:

java
// С Optional
String result = Optional.ofNullable(value)
    .map(String::toUpperCase)
    .orElse("DEFAULT");

// С if/else
String result;
if (value != null) {
    result = value.toUpperCase();
} else {
    result = "DEFAULT";
}

Optional предпочтительнее для:

  • Возвращаемых значений методов
  • Цепочки преобразований
  • Явного указания на возможное отсутствие значения

Но не стоит использовать Optional для:

  • Параметров методов
  • Поля класса
  • Коллекций (лучше возвращать пустую коллекцию)
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы