Spring 数据流与流

Spring Data Streamable vs Stream

我知道目的是什么以及如何将 Stream 处理为查询输出,即:

Stream<Person> findAll();

然而,最近我偶然发现了 org.springframework.data.util.Streamable<T>,其用法与 Stream:

相同
Streamable<Person> findByNameContaining(String name, Sort sort);

Streamable的用例是什么?

接口流

Functional Interface: This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.

Spring doc

来自 java.util 的流只是一个接口。

Streamable 是从 Spring 创建的,作为扩展 Iterable<T>

的功能接口

Streamable 也有一些默认方法和一些静态方法。但它曾经能够利用功能接口的工作方式提供迭代器作为 lambda 函数。

这只是技术信息。

根据我的理解,现在实用它的主要用途是将 Iterable<T> 转换为 Stream<T>

    Iterable<String> it = Arrays.asList("a","b","c");
    Stream<String> s = Streamable.of(it).stream();

不存在直接将 Iterable<T> 转换为 Stream<T> 的简单方法,因此他们发明了它。

您可以在此处找到大部分用途 Uses of Spring Streamable