import reactor.core.publisher.Mono; public class test_mono { public static void main(String[] args) { Mono source = Mono.empty(); Mono m = source .flatMap(s -> Mono.just("from flatMap " + s)) .switchIfEmpty(Mono.defer(() -> Mono.just("from switchIfEmpty"))); m.subscribe(System.out::println); } }