В каких случаях нужно применять Optional

«В каких случаях нужно применять Optional» — вопрос из категории Java, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Optional следует использовать, когда метод может вернуть null, и это ожидаемое поведение. Это явно указывает, что результат может отсутствовать, и заставляет вызывающий код обрабатывать этот случай.

Пример:

fun findUserById(id: Int): Optional<User> {
    val user = userRepository.findById(id)
    return Optional.ofNullable(user)
}

// Вызов
val user = findUserById(123).orElseThrow { UserNotFoundException() }

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

  • Для обязательных параметров методов (лучше явно проверять null).
  • В коллекциях (лучше возвращать пустую коллекцию).
  • В полях класса (может усложнить сериализацию).

Optional улучшает читаемость кода, но не заменяет проверки на null там, где они действительно нужны.