java - 为什么 FindById 返回 Optional?
问题描述
我目前在我的存储库接口中重写findById
以返回一个普通对象,因为我不喜欢我必须做的不必要的代码:.isPresent()
和.get()
ApplicationType findById(long applicationTypeId);
我只是检查if(applicationType != null)
在这里实施 Optional 的任何原因?
解决方案
自 JDK 8 起,可选在 JDK 中实现。
它谦虚地希望避免在代码中使用 null 检查(就像您实际上所做的那样)
Optional
return 这里意味着我们可以有一个ApplicationType
值或null
.
有 时,Optional
您可以使用 来检查值isPresent()
。的值Optional
可以用get()
Optional 很有趣,特别是在使用 optinal 本身的函数直接执行操作时,仅使用 this :
Optional<ApplicationType> applicationType = repo.findById(1L);
applicationType.ifPresent(value -> doSomething(value));
applicationType.orElse(defaultApplicationType);
这里是关于 Optionals的完整指南
推荐阅读
- loops - 凿子中的中断语句
- c# - 使用 HTTPResponseMessage 连接多个字符串
- c# - 异步方法返回 500 Internal Server Error 以查看,即使它完成后也是如此
- amazon-web-services - 代理协议可以与 AWS Application Load Balancer 一起使用吗?
- excel - 使用 INDEX MATCH FUNCTION 克服 #REF 错误
- .htaccess - htaccess 重定向所有页面,除了一些不起作用
- c# - 强制实例实现方法
- php - 在 codeigniter 中更新会话
- javascript - javascript正则表达式验证输入
- c - C中的三元运算符?