地图运算符创建新的 Flux

Map operator to create new Flux

我想从另一个 flux 创建新的 Flux。 我知道在 RxJava 中使用转换运算符我可以创建新的 Observable,在 Flux 中不是这样吗?

我尝试了以下方法:

Flux f1 = Flux.just("one","two","three");
Flux f2 = f1.map(String::length);

但是我的 IDE 出现编译错误。

以下内容完全符合:

Flux f1 = Flux.just("one","two","three").map(String::length);

有什么想法吗?

你应该将 f1 声明为 Flux<String>

Flux 类型中的方法 map(Function) 不适用于参数 (String::length) 你应该这样做:

Flux<String> f1 = Flux.just("one", "two", "three");
Flux f2 = f1.map(String::length);

这是您的代码:

Flux f1 = Flux.just("one","two","three");
Flux f2 = f1.map(object -> object.length());//compilation error

因为您没有为 Flux f1 指定数据类型,所以 map 运算符无法解析它正在处理的数据类型。因此,它认为它是 Object 类型,没有 length() 方法。

提供数据类型应该可以正常工作。

Flux<String> f1

而在 Flux f1 = Flux.just("one","two","three").map(String::length); 中,map 运算符知道它正在处理 StringFlux,因此它能够解析 length()方法。