Проверка, является ли опциональное значение нулевым или нет, по сути неверна.
Необязательные, где они были созданы для того, чтобы свести на нет необходимость нулевых проверок, введя понятие пустоты.
По сути, необязательным является обертка для значения, для которого он может иметь два состояния. Либо иметь значение, либо быть пустым. Это делается с помощью Optional#isPresent
. Подробнее об этом вы можете узнать в соответствующей документации здесь .
По сути, это следующее:
public boolean isPresent() {
return value != null;
}
Хорошо реализованный метод (как и тот, который вы упомянули выше) вернет необязательный параметр со значением или пустой необязательный (как указано в документации).
Дополнительные функции предлагают большое количество методов, которыми вы можете воспользоваться без проверки пустоты.
Например, в своем коде вы могли бы:
entryRepository.findById(id).ifPresent(() -> {
//some operation
});
Который в основном принимает потребителя и выполняет его в случае, если значение необязательного параметра не равно нулю.
В качестве альтернативы вы можете использовать функции отображения и т. Д.
Предлагаю вам ознакомиться с документацией для получения дополнительной информации.