java 8:在lambda中使用Optional

Rud*_*ira 0 lambda functional-programming if-statement optional java-8

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

List success = new ArrayList <>();
List failures = new ArrayList <>();

并且有一个对象

RoomTypes值

对于这value.getErrorType()可能是空或不和value.getId()回报整数.

我想更新success,并failurevalue.getId()根据列表value.getErrorType()为空.

就像是:

if(value.getErrorType().equals(NULL)){
   success.add(value.getId())
}
else{
   failure.add(value.getId())
}
Run Code Online (Sandbox Code Playgroud)

Hol*_*ger 5

假设,NULL实际意味着null,你可以使用

Optional.ofNullable(value.getErrorType())
        .map(x -> failure).orElse(success).add(value.getId());
Run Code Online (Sandbox Code Playgroud)

虽然不建议Optional用于这种情况,因为类似的普通支票是直截了当的:

(value.getErrorType() == null? success: failure).add(value.getId());
Run Code Online (Sandbox Code Playgroud)