地图运算符创建新的 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
运算符知道它正在处理 String
的 Flux
,因此它能够解析 length()
方法。
我想从另一个 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
运算符知道它正在处理 String
的 Flux
,因此它能够解析 length()
方法。