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