报告未使用的 Publisher 实例。

要使用生成新的 Publisher 实例的运算符(返回 Mono/Flux/Flowable 的 Mono/Flux/Flowable 对象的方法),您必须通过 subscribe() 订阅创建的 Publisher

使用工厂(例如,Mono.just())而不订阅返回的 Publisher,会创建一个从未使用的对象,并被视为不必要的内存分配。

例如,Mono.just(1, 2, 3).map(i -> i + 3) 不会被执行,除非您订阅了此 Publisher,或者除非您通过应用运算符生成新的 Publisher 并订阅它。

示例:

未使用的 Flux 实例:


Flux.just(1, 2, 3);

使用者使用的 Flux 实例:


Flux.just(1, 2, 3).subscribe(System.out::println);

不会报告对使用 Error Prone 或 AssertJ 的 @CanIgnoreReturnValue 注解进行注解的方法的调用。

2019.3 最新变化