java - 从 Java 中返回可选 ifPresent()
问题描述
我了解您无法从 a 返回,ifPresent()
因此此示例不起作用:
public boolean checkSomethingIfPresent() {
mightReturnAString().ifPresent((item) -> {
if (item.equals("something")) {
// Do some other stuff like use "something" in API calls
return true; // Does not compile
}
});
return false;
}
WheremightReturnAString()
可以返回一个有效的字符串或一个空的可选项。我所做的工作是:
public boolean checkSomethingIsPresent() {
Optional<String> result = mightReturnAString();
if (result.isPresent()) {
String item = result.get();
if (item.equals("something") {
// Do some other stuff like use "something" in API calls
return true;
}
}
return false;
}
这更长,并且与首先检查空值没有太大区别。我觉得必须有一种更简洁的方式使用 Optional。
解决方案
我认为您正在寻找的只是filter
然后检查是否存在:
return result.filter(a -> a.equals("something")).isPresent();
推荐阅读
- javascript - 如何在 Asp Net Core 中使用 Javascript 将数据库中的数据传递到选择的下拉列表中
- deep-learning - 人工神经网络
- javascript - 通过 websocket 使用 blob 发送附加数据
- php - 获取 Ajax POST URL
- json - 标识符中带有点的 Jekyll 站点数据
- javascript - Firebase Cloud Functions 无法写入 Firestore 数据库 - 权限缺失或不足
- c# - 手模型内轴旋转统一
- python - 带有类别列表的 Flash Flasks 消息到 HTML5 jinja2 模板
- java - 如何创建一组字符串,其中每个字符串有 1000 个客户 ID 用于 Oracle 查询表达式
- c# - 构建时游戏 UI 位置更改,而在具有相同分辨率的统一编辑器中工作正常