SpringWebFlux04操作符03filter
filter操作符示意图如下图所示。
filter接受一个Predicate的函数式接口为参数,这个函数式接口的作用是进行判断并返回boolean值:
# 在这个类: reactor.core.publisher.Fluxpublic final Flux<T> filter(Predicate<? super T> tester)
# 在这个类:reactor.core.publisher.Mono
public final Mono<T> filter(Predicate<? super T> tester)
下面使用案例阐述filter操作符的用法。案例代码如下:
package com.test.reactor;import reactor.core.publisher.Flux;
import reactor.test.StepVerifier;
/**
* filter操作符测试
*/
public class FilterOperationDemo {
public static void main(String[] args) {
StepVerifier.create(Flux.range(1, 6)
// 过滤奇数
.filter(i -> i % 2 == 1)
// 过滤后的元素进行立方操作
.map(i -> i * i * i))
// 期望的结果
.expectNext(1, 27, 125)
// 异常情况模拟
//.expectNext(1, 127, 125)
.verifyComplete();
}
}
执行案例代码发现控制台无异常输出。如果修改立方后的数据为expectNext(1, 127, 125)将会出现如下异常:
Exception in thread "main" java.lang.AssertionError: expectation "expectNext(127)" failed (expected value: 127; actual value: 27)
以上是 SpringWebFlux04操作符03filter 的全部内容, 来源链接: utcz.com/z/513213.html