Java Stream ofNullable()

In this guide, you will learn about the Stream ofNullable() method in Java programming and how to use it with an example.

1. Stream ofNullable() Method Overview

Definition:

The ofNullable() method in the Stream class is a static method introduced in Java 9. This method returns a sequential Stream containing a single element if the specified element is non-null, otherwise returns an empty Stream. This method is useful for avoiding NullPointerExceptions when creating a stream from a single element that may be null.

Syntax:

static <T> Stream<T> ofNullable(T t)

Parameters:

- t: the single element. This element can be null.

Key Points:

- Introduced in Java 9.

- The method is used for creating a stream of zero or one element.

- It helps in preventing NullPointerException when creating streams from elements that can be null.

- If the provided element is null, an empty stream is returned. Otherwise, a stream containing one element is returned.

2. Stream ofNullable() Method Example

import java.util.stream.Stream;

public class OfNullableExample {
    public static void main(String[] args) {
        // Creating a Stream with a non-null element
        Stream<String> nonNullStream = Stream.ofNullable("Hello, World!");

        // Creating a Stream with a null element
        Stream<String> nullStream = Stream.ofNullable(null);

        // Displaying the result
        System.out.println("Non-null Stream:");
        nonNullStream.forEach(System.out::println);

        System.out.println("Null Stream:");
        nullStream.forEach(System.out::println); // This will not print anything as the stream is empty
    }
}

Output:

Non-null Stream:
Hello, World!
Null Stream:

Explanation:

In this example, we have used the Stream::ofNullable() method to create two streams - nonNullStream and nullStream. nonNullStream is created with a non-null string "Hello, World!", so it will have that string as the single element. nullStream is created with null, so it's an empty stream. When we print the elements of the streams, "Hello, World!" is printed for the nonNullStream, and nothing is printed for the nullStream since it is empty.

Comments