SpringWebFlux04操作符03filter

编程

filter操作符示意图如下图所示。

filter接受一个Predicate的函数式接口为参数,这个函数式接口的作用是进行判断并返回boolean值:    

# 在这个类: reactor.core.publisher.Flux

public 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

回到顶部