java - 从函数返回,一旦函数中的值为空
问题描述
如果 Optional 的值不存在,我想退出当前的方法/函数。
我尝试了一种天真的方法将 return 语句放入 .orElseGet() ,但这似乎不起作用。迄今为止最好的选择似乎是:
private void foo(Set<ISomeObject> someIterable) {
Optional<ISomeObject> myObjectOpt = someIterable
.stream()
.filter(...)
.findFirst();
if(!myObjectOpt.isPresent()){
return;
}
ISomeObject myObject = myObjectOpt.get();
// do something with myObject
}
这似乎没有比旧的 Nullcheck 更好的可读性,还有其他选择吗?
解决方案
您可以将 a 传递Consumer
给ifPresent
并在消费者中做任何您想做的事情:
private void foo(Set<ISomeObject> someIterable) {
someIterable
.stream()
.filter(...)
.findFirst()
.ifPresent(x -> {
// do something with x
});
// do nothing!
}
推荐阅读
- angular - primeNG 多选下拉列表在删除然后再次动态添加相同的值后保留复选框值
- python - Flask + SQLAlchemy:为表创建索引列
- moodle - 带有登录名和密码的 Web 服务
- python - 多索引索引中的不一致行为
- javascript - Google 自定义搜索占位符文本在 Edge 浏览器中不起作用
- ios - 在 Objective-C 中将 JSON 数据转换为 NSString JSON 序列化?
- css - 为什么动画缩放和使用 css 变量进行翻译的处理方式不同?
- ios - iphone x UITable 视图顶部空间
- c# - 使用 STDOUT 打印语句将控制台附加到 C# Windows 应用程序
- python - 同时从数据库中提取和更新数据库