如何在 Java Reactor 链中使用 void 方法?

Col*_*oli 7 java java-8 project-reactor

考虑这个代码:

import reactor.core.publisher.Mono;

public class Main {

    public static void main(String[] args) {
        Mono.just(1)
            .map(Main::return_int) // is ok
//          .map(Main::return_void) // is not ok
            .subscribe();
    }

    private static void return_void(int input) {
        // do stuff with input
    }

    private static int return_int(int input) {
        return input;
    }
}
Run Code Online (Sandbox Code Playgroud)

显然禁止Mono#map与空参数一起使用,我得到error: method map in class Mono<T> cannot be applied to given types; (...)

现在我如何return_void()在链中调用这个方法?

我应该使用其他运算符#map吗?或者除了包装return_void()到一个返回的方法之外别无选择Mono< Void>

bsi*_*eup 4

Mono#doOnNext不会改变流程,但允许您执行副作用(返回的东西void,如您的情况)

另外,当值不满足您的条件时,请考虑使用Mono#handle继续或调用,而不是从函数中抛出。sink.error(...)void