Close

Reactor - Creating an instance using Flux.just() Mono.just()

[Last Updated: Sep 10, 2020]

Following are the just() methods of Flux and Mono to create the instances:

Flux methods

public static <T> Flux<T> just(T... data)
public static <T> Flux<T> just(T data)

Mono methods

public static <T> Mono<T> just(T data)
public static <T> Mono<T> justOrEmpty(@Nullable
                                      Optional<? extends T> data)

This method emits the specified item if Optional.isPresent() otherwise only emits onComplete.

public static <T> Mono<T> justOrEmpty(@Nullable
                                      T data)

Create a new Mono that emits the specified item if non null otherwise only emits onComplete.

Examples

Using Flux#just()

package com.logicbig.example;

import reactor.core.publisher.Flux;

public class FluxJustExamples {
    public static void main(String[] args) {
        System.out.println("-- Creating with Flux#just(T... data) --");
        Flux.just(2, 4, 6, 8)
            .subscribe(System.out::println);

        System.out.println("-- Creating with Flux#just(T data) --");
        Flux.just(3)
            .subscribe(System.out::println);
    }
}
-- Creating with Flux#just --
2
4
6
8
-- Creating with Mono#just --
3

Flux.just will throw NullPointerException for null item:

package com.logicbig.example;

import reactor.core.publisher.Flux;

public class FluxJustWithNullExamples {
    public static void main(String[] args) {
        System.out.println("-- Creating Flux#just with a null value --");
        Flux.just("2", null, "6")
            .subscribe(System.out::println);
    }
}
-- Creating Flux#just with a null value --
2
reactor.core.Exceptions$ErrorCallbackNotImplemented: java.lang.NullPointerException: The 1th array element was null

Mono#just() example

package com.logicbig.example;

import reactor.core.publisher.Mono;

public class MonoJustExample {
    public static void main(String[] args) {
        System.out.println("-- Creating Mono with Mono#just --");
        Mono.just("apple")
            .subscribe(System.out::println);
    }
}
-- Creating Mono with Mono#just --
apple

Mono#just() will throw NPE for null input:

package com.logicbig.example;

import reactor.core.publisher.Mono;

public class MonoJustWithNullExample {
    public static void main(String[] args) {
        System.out.println("-- Creating Mono#just with null --");
        Mono.just(null)
            .subscribe(System.out::println);
    }
}
-- Creating Mono#just with null --
java.lang.NullPointerException: value
at java.util.Objects.requireNonNull(Objects.java:228)
at reactor.core.publisher.MonoJust.<init>(MonoJust.java:34)
at reactor.core.publisher.Mono.just(Mono.java:577)
at com.logicbig.example.MonoJustWithNullExample.main(MonoJustWithNullExample.java:8)

Mono#justOrEmpty() example

package com.logicbig.example;

import reactor.core.publisher.Mono;

public class MonoJustOrEmptyExample {
    public static void main(String[] args) {
        System.out.println("-- Creating Mono with justOrEmpty() --");
        Mono.justOrEmpty("apple")
            .subscribe(System.out::println);

        System.out.println("-- Using justOrEmpty() with null --");
        Mono.justOrEmpty(null)
            .subscribe(System.out::println);
    }
}
-- Creating Mono with justOrEmpty() --
apple
-- Using justOrEmpty() with null --

Mono#justOrEmpty(Optional) examples

package com.logicbig.example;

import reactor.core.publisher.Mono;
import java.util.Optional;

public class MonoJustWithOptionalExample {
    public static void main(String[] args) {
        System.out.println("-- Creating Mono with optional --");
        Optional<String> optional = Optional.of("apple");
        Mono.justOrEmpty(optional)
            .subscribe(System.out::println);

        System.out.println("-- Creating Mono with null optional --");
        Optional<String> optional2 = Optional.ofNullable(null);
        Mono.justOrEmpty(optional2)
            .subscribe(System.out::println);

        System.out.println("-- Creating Mono with empty optional --");
        Optional<String> optional3 = Optional.empty();
        Mono.justOrEmpty(optional3)
            .subscribe(System.out::println);
    }
}
-- Creating Mono with optional --
apple
-- Creating Mono with null optional --
-- Creating Mono with empty optional --

Example Project

Dependencies and Technologies Used:

  • reactor-core 3.3.9.RELEASE: Non-Blocking Reactive Foundation for the JVM.
  • JDK 8
  • Maven 3.5.4

Project Reactor - Flux.just() and Mono.just() Example Select All Download
  • reactor-create-with-just-examples
    • src
      • main
        • java
          • com
            • logicbig
              • example
                • MonoJustExample.java

    See Also