Можно ли написать этот код, встроенный в цепочку необязательных методов:
Optional<Application> appOpt = this.applicationDao.findById(application.getCode());
Application app = appOpt.orElse(Application::new);
if (!appOpt.isPresent()) {
app.get().setUserCreation("user");
app.get().setTimestampCreation(new Date());
}
Я бы хотел снова воспользоваться предыдущим appOpt
объектом. Я хотел бы встроить всю эту логику в цепочку необязательных методов.
Полагаю, должен быть другой, более элегантный способ получить его.
Я пытался поиграть с ifPresent
, но он возвращает void
, поэтому я не могу связать orElse
метод:
appOpt.ifPresent(a -> {
a.setUserCreation("userCreation"));
app.setTimestampCreation(new Date());
})
.orElse(Application::new);
Надеюсь, я так хорошо объяснил.
Есть идеи?