Sobes.tech
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 недопустим.