Back to questions
Junior — Middle
77
Чем отличаются методы Optional.of() и Optional.ofNullable() в использовании и поведении?
Answer from AI
sobes.tech AI
Методы 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 недопустим.