.orElseGet(Collections::emptyList)
时间: 2024-03-02 16:49:02 浏览: 94
`.orElseGet(Collections::emptyList)` 是一种常见的 Optional 使用方式,它的作用是获取 Optional 对象中的值,如果该值为 null,则返回一个空的列表。
具体来说,`.orElseGet(Collections::emptyList)` 的语法是:
```
orElseGet(Supplier<? extends T> other)
```
其中,`other` 参数是一个函数式接口 `Supplier` 的实例,它可以生成一个默认值。在这里,`Collections::emptyList` 是一个方法引用,它引用了 Java 标准库中的 `Collections` 类的 `emptyList()` 方法,该方法会返回一个空的列表。因此,如果 Optional 对象中的值为 null,`.orElseGet(Collections::emptyList)` 会返回一个空的列表。
例如:
```
Optional<List<String>> optionalList = Optional.ofNullable(null);
List<String> list = optionalList.orElseGet(Collections::emptyList);
```
在上面的例子中,因为 optionalList 为空,所以会调用 `orElseGet` 中传入的函数 `Collections::emptyList`,生成一个空的列表,并将其赋值给 list。如果 optionalList 不为空,则直接返回 optionalList 中的值。
阅读全文