Optional - это класс в Java, который позволяет избежать проблемы с отсутствующими значениями (null). Он представляет собой контейнер, который может содержать значение или быть пустым.
Пример использования Optional:
Optional name = Optional.of("John");
System.out.println(name.isPresent()); // true
System.out.println(name.get()); // John
Optional emptyName = Optional.empty();
System.out.println(emptyName.isPresent()); // false
String defaultName = name.orElse("Default");
System.out.println(defaultName); // John
emptyName.ifPresent(n -> System.out.println("Name is present: " + n)); // не будет ничего выведено, потому что пустое значение
В данном примере мы создаем Optional объект name, который содержит значение "John". Мы можем проверить, существует ли значение в Optional с помощью метода isPresent(). Мы также можем получить значение, вызвав метод get().
Затем мы создаем пустой Optional emptyName. В таком случае метод isPresent() возвращает false, так как значение отсутствует.
Метод orElse() позволяет задать значение по умолчанию, которое будет возвращено, если Optional не содержит значения. В нашем примере значение по умолчанию - "Default".
Метод ifPresent() позволяет выполнить действие, если значение в Optional присутствует. В данном примере он не будет выполняться, так как emptyName не содержит значения.
Optional предоставляет удобный способ работы с отсутствующими значениями, предупреждая ошибки, связанные с null. Он также облегчает чтение и понимание кода, так как показывает явно, что значение может отсутствовать.