我有这样的代码:
myList.stream()
.filter(item -> item.getName().isPresent())
.filter(item -> item.getName().get().equalsIgnoreCase(otherName))
.findFirst();
Run Code Online (Sandbox Code Playgroud)
(...item.getName()返回类型为Optional<String>)
我怎么能在这里将两个过滤器压缩成一个?
您可以使用Optional.filter():
myList.stream()
.filter(item ->
item.getName().filter(n -> n.equalsIgnoreCase(otherName)).isPresent())
.findFirst();
Run Code Online (Sandbox Code Playgroud)
内部filter调用 is Optional.filter,如果不满足过滤条件,它将返回一个空的可选项。
| 归档时间: |
|
| 查看次数: |
101 次 |
| 最近记录: |