android - 遍历可选对象列表
问题描述
在下面发布的代码中,我想知道如何遍历可选对象列表?根据代码:
OptionalsUtils.toOptional(this.getUser_3())
.flatMap(user->user.getOptUserFavoriteTvList()
.filter(list-> list.get(???) != Optional.empty())
);#
现在我想引用列表中的每个索引?我怎样才能实现它?
代码:
OptionalsUtils.toOptional(this.getUser_3())
.flatMap(user->user.getOptUserFavoriteTvList()
.filter(list-> list.get(0) != Optional.empty())
);
private User getUser_3() {
List<Optional<String>> list = new ArrayList<>(5);
list.add(Optional.of("espn"));
list.add(Optional.of("Cnn"));
list.add(Optional.empty());
list.add(Optional.of("deutsch welle"));
User user = new User();
user.setUserName("johannas");
user.setUserEmailAddres("joha90@gmail.com");
user.setUserId("2005");
user.setUserFavoritesTvList(list);
return user;
}
public Optional<List<String>> getOptUserFavoriteTvList() {
return OptionalsUtils.toOptional(this.getUserFavoriteTvList());
}
解决方案
之后flatMap
,从可选的(如果存在)中提取列表orElse
,然后应用您的逻辑...
OptionalsUtils.toOptional(this.getUser_3())
.flatMap(user-> user.getOptUserFavoriteTvList())
.orElse(Collections.emptyList());
在调用 之后orElse
,您现在正在使用 a List<String>
,您可以调用stream()
它来执行更复杂的操作或使用典型的 for 循环等迭代它......
ifPresent
如果它更适合手头的任务,你甚至可以选择。
OptionalsUtils.toOptional(this.getUser_3())
.flatMap(user-> user.getOptUserFavoriteTvList())
.ifPresent(list -> list.forEach(e -> ....));
推荐阅读
- javascript - 如何使用JS按范围从字符串中删除字符串
- roblox - 如何报告 Roblox Studio 中的错误?
- html - 使用 Rangy 库按字号选择范围
- websocket - 是否有必要压缩 Websocket 短消息?
- c++ - 转发引用始终视为右值引用
- php - Laravel 使用了错误的用户提供者
- cancellationtokensource - 使用 CancellationToken 的正确方法是什么?
- batch-file - 查找和替换字符串,并使用批处理脚本覆盖同一文件
- sql - 休眠中的懒惰和渴望获取
- azure - Microsoft 自定义翻译和语音翻译 API