Stream.ofNullable()
Создание Stream с нулём или одним элементом из nullable-значения.
Сравнение кода
✕ Java 8
Stream<String> s = val != null
? Stream.of(val)
: Stream.empty();
✓ Java 9+
Stream<String> s =
Stream.ofNullable(val);
Заметили проблему в этом коде? Сообщите нам.
Почему современный подход лучше
Краткость
Один вызов заменяет тернарное выражение.
flatMap-совместимый
Отлично подходит внутри flatMap для пропуска null-значений.
Null-безопасный
Нет риска NPE — null превращается в пустой Stream.
Старый подход
Проверка на null
Современный подход
ofNullable()
Начиная с JDK
9
Сложность
Начинающий
Поддержка JDK
Stream.ofNullable()
Доступно
Широко доступно с JDK 9 (сент. 2017)
Как это работает
Stream.ofNullable() возвращает однопоточный Stream, если значение не null, или пустой Stream, если оно null. Устраняет паттерн тернарной проверки на null.
Связанная документация
Доказательство