Optional
// Создаем Optional с пустым значением
Optional emptyOptional = Optional.empty();
// Создаем Optional с непустым значением
Optional nonEmptyOptional = Optional.of("String value");
// Можем там же создать Optional с возможностью отсутствия значения
Optional optionalWithNullable = Optional.ofNullable(null);
// Проверяем, есть ли значение в Optional, и выполняем действие при его наличии
if (nonEmptyOptional.isPresent()) {
System.out.println(nonEmptyOptional.get()); // String value
}
// Используем метод orElse для предоставления альтернативного значение,
// если значение отсутствует
String result = emptyOptional.orElse("default");
System.out.println(result); // default
Optional представляет собой класс, введенный в Java 8, который предназначен для борьбы с проблемами, связанными с отсутствием значения (null) и обеспечивает более безопасную и чистую обработку возможных отсутствующих значений.
Вот некоторые основные концепции и преимущества, связанные с Optional:
👉 Избавление от NullPointerException: Одной из основных задач Optional является предотвращение NullPointerException, которые могут возникнуть, когда мы пытаемся обратиться к методам или полям объекта, который оказывается null.
👉 Явное указание на отсутствие значения: Optional позволяет явно указать, что значение может быть отсутствующим, и предоставляет методы для проверки и обработки этого случая.
👉 Безопасные методы доступа к данным: Вместо того чтобы напрямую получать доступ к данным внутри Optional, мы используем методы, такие как isPresent(), ifPresent(), orElse(), orElseGet(), orElseThrow(), которые позволяют выполнить определенные действия, если значение присутствует, или вернуть альтернативное значение, если оно отсутствует.
📌 Использование Optional способствует более чистому и читаемому коду, а также снижает вероятность ошибок, связанных с нулевыми значениями. Однако следует помнить, что Optional не всегда является наилучшим выбором, и его следует использовать там, где это имеет смысл с точки зрения бизнес-логики вашего приложения.