Цель использования Optional
- сообщить, кто вызывает этот метод / параметр, что это может быть null
.
В первой части вашего кода вы не получаете никаких преимуществ от этого, вы просто переписываете некоторый код, оборачивая его вокруг Optional
логики, но, как вы сказали, без какой-либо "многоразовой" цели.
Полезным способом является использование его в качестве возвращаемого значения метода: например, если вы знаете, что ваш title
может быть нулевым, вы можете изменить свой геттер как
public Optional<String> getTitle(){
return Optional.ofNullable(this.title); //I'm guessing the 'title' variable here
}
Это поможет вам: каждый раз, когда вы звоните getTitle()
, вы будете знать, что это может быть нулевым, потому что вы получаете Optional<String>
вместо String
.
Это приведет вас к:
request.getTitle().ifPresent(title-> title.doSomething())
// you can also add something like .orElse("anotherStringValue")
Второй пример может быть переработан как первый, возвращая getLockVehicle()
как Optional<Boolean>
, даже если я предлагаю здесь установить значение по умолчанию в вашем классе, вероятно, на false
... Optional<Boolean>
довольно бессмысленно имхо
Надеюсь, это поможет очистить ваш разум