Методы Optional.of() и Optional.ofNullable() используются для создания Optional-объектов, но отличаются поведением при передаче null:
Чем отличаются методы Optional.of() и Optional.ofNullable() в использовании и поведении?
Методы Optional.of() и Optional.ofNullable() используются для создания Optional-объектов, но отличаются поведением при передаче null:
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Методы Optional.of() и Optional.ofNullable() используются для создания Optional-объектов, но отличаются поведением при передаче null:
Optional.of(value)— создаёт Optional с непустым значением. Если передатьnull, выброситNullPointerException. Используется, когда вы уверены, что значение неnull.Optional.ofNullable(value)— создаёт Optional, который может быть пустым, если переданоnull. Не выбрасывает исключение.
Пример:
Optional<String> opt1 = Optional.of("Hello"); // OK
Optional<String> opt2 = Optional.of(null); // NullPointerException
Optional<String> opt3 = Optional.ofNullable("Hello"); // OK
Optional<String> opt4 = Optional.ofNullable(null); // Пустой Optional
Таким образом, ofNullable безопаснее, когда значение может быть null, а of — когда null недопустим.