if-statement - java 8: 使用 Optional 和 lambda
问题描述
如何使用 Optional 和 lambda 编写以下逻辑? 我有两个列表
列出成功 = new ArrayList<>();
列表失败 = new ArrayList<>();
还有一个对象
房间类型值
value.getErrorType()
可以为 NULL 或不为 NULL 并返回value.getId()
整数。
我想根据为空来更新和success
列表。failure
value.getId()
value.getErrorType()
就像是:
if(value.getErrorType().equals(NULL)){
success.add(value.getId())
}
else{
failure.add(value.getId())
}
解决方案
假设,NULL
实际上意味着null
,你可以使用
Optional.ofNullable(value.getErrorType())
.map(x -> failure).orElse(success).add(value.getId());
虽然不建议在Optional
这种情况下使用,因为类似的普通检查是直截了当的:
(value.getErrorType() == null? success: failure).add(value.getId());
推荐阅读
- flutter - 如何对嵌套列表进行排序
通过其变量 Flutter 之一 - javascript - 如何在反应表中合并单元格
- javascript - 有没有办法自定义promise.all?
- rust - Rust 中的阴影和与借用检查器作斗争
- nginx - 如何将自定义 /location 设置为 /location/index.html
- android - 如何将自定义警报对话框中的项目添加到列表视图?
- django - Django - 如何控制和过滤相关对象
- unix - 如何在 UNIX 中拆分 ISO 8601 日期/时间列?
- python - pyplot 用不正确的 y 轴裁剪数据
- java - 如何清除用户控制台?