【问题标题】:java 8: Using Optional with lambdajava 8: 使用 Optional 和 lambda
【发布时间】:2018-07-03 16:41:09
【问题描述】:

如何使用 Optional 和 lambda 编写以下逻辑? 我有两个列表

列表成功 = new ArrayList();
列表失败 = new ArrayList();

还有一个对象

房间类型值

value.getErrorType() 可以为 NULL 或不为 NULL,value.getId() 返回整数。

我想根据value.getErrorType() 为空,将value.getId() 列表更新为successfailure

类似:

if(value.getErrorType().equals(NULL)){
   success.add(value.getId())
}
else{
   failure.add(value.getId())
}

【问题讨论】:

标签: if-statement lambda java-8 functional-programming optional


【解决方案1】:

假设NULL实际上是null,你可以使用

Optional.ofNullable(value.getErrorType())
        .map(x -> failure).orElse(success).add(value.getId());

虽然不建议在这种情况下使用Optional,因为类似的普通检查是直截了当的:

(value.getErrorType() == null? success: failure).add(value.getId());

【讨论】:

  • 比我的更简洁优雅的解决方案!
猜你喜欢
  • 2019-05-11
  • 2018-06-02
  • 2016-08-19
  • 2018-01-08
  • 1970-01-01
  • 2019-07-20
  • 1970-01-01
  • 2014-12-02
  • 2017-09-30
相关资源
最近更新 更多