Пустой контейнер Optional в Java
Когда результата нет, метод возвращает один и тот же
пустой объект через Optional.empty(). Его не
нужно создавать вручную каждый раз: библиотека отдает
готовый экземпляр без значения внутри.
Пустой контейнер ведет себя так же, как
Optional.ofNullable(null): проверки
isEmpty и isPresent показывают
отсутствие, а get без подготовки бросит
исключение.
Явный empty читается в ветке «ничего не нашли»:
import java.util.List;
import java.util.Optional;
Optional<String> firstLong(List<String> lines) {
for (String line : lines) {
if (line.length() > 10) {
return Optional.of(line);
}
}
return Optional.empty();
}
Вызов для списка без длинных строк вернет пустой
контейнер, а не null. Снаружи не нужно
отдельно помнить, что «null здесь значит не найдено».
Метод Optional<Integer> positive(int n):
для n > 0 верните Optional.of(n),
иначе Optional.empty().
Выведите isEmpty() для -3 и
get для 5.