Back to questions
СБЕР
Junior — Middle
55
Каким образом класс Optional помогает предотвращать появление NullPointerException в коде?
Companies where asked
Answer from AI
sobes.tech AI
Класс Optional в Java служит контейнером, который может содержать либо значение, либо быть пустым (null). Использование Optional помогает явно указать, что значение может отсутствовать, что заставляет разработчика обрабатывать этот случай явно, а не получать неожиданное NullPointerException.
Например, вместо возвращения null из метода, можно вернуть Optional.empty(), а при наличии значения — Optional.of(value). Это позволяет использовать методы isPresent(), orElse(), ifPresent() и другие для безопасной работы с возможным отсутствием значения.
Пример:
Optional<String> getName(boolean hasName) {
if (hasName) {
return Optional.of("Иван");
} else {
return Optional.empty();
}
}
Optional<String> name = getName(false);
name.ifPresent(n -> System.out.println(n)); // ничего не выведет, не вызовет NPE
String defaultName = name.orElse("Гость");
System.out.println(defaultName); // выведет "Гость"
Таким образом, Optional заставляет явно обрабатывать отсутствие значения, снижая риск возникновения NullPointerException.