是否能够将此代码嵌入到Optional方法链中:
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());
}
Run Code Online (Sandbox Code Playgroud)
我想再次使用前一个appOpt对象.我想将所有这些逻辑嵌入Optional方法链中.
我想应该有另一种更优雅的方式来获得它.
我试过玩,ifPresent但它返回void,所以我无法链接orElse方法:
appOpt.ifPresent(a -> {
a.setUserCreation("userCreation"));
app.setTimestampCreation(new Date());
})
.orElse(Application::new);
Run Code Online (Sandbox Code Playgroud)
我希望我解释得那么好.
有任何想法吗?
再次查看原始代码后,如果Optional为空,则逻辑应该运行:
Application application = appOpt.orElseGet(() -> {
Application app = new Application();
app.setUserCreation("userCreation"));
app.setTimestampCreation(new Date());
return app;
});
Run Code Online (Sandbox Code Playgroud)