gpt4 book ai didi

java 可选 : if do something pattern

转载 作者:行者123 更新时间:2023-11-29 06:26:51 27 4
gpt4 key购买 nike

是否可以将此代码嵌入到可选方法链中:

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);

我希望我解释得很好。

有什么想法吗?

最佳答案

再次查看您的原始代码后,如果 Optional 为空,逻辑似乎应该运行:

Application application = appOpt.orElseGet(() -> {
Application app = new Application();
app.setUserCreation("userCreation"));
app.setTimestampCreation(new Date());
return app;
});

关于java 可选 : if do something pattern,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54196875/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com