Java OptionalInt Example | Avoid NullPointerException

Java OptionalInt example

OptionalInt allows us to create an object which may or may not contain an int value. If a value is present, isPresent() will return true and getAsInt() will return the value.

Additional methods that depend on the presence or absence of a contained value are provided, such as orElse().

Other classes similar to OptionalInt are OptionalDouble, OptionalLong, and Optional. These help us eliminate exceptions that occur due to the absence of a value at runtime. The key is to first check if the Optional contains a value before trying to retrieve it.

OptionalIntExample

In this example, we return an OptionalInt from a Stream created from an integer array and finally return a value using the reduce() method. If the value is present, then only we print it using getAsInt().

package javaexp.blogspot.stream;

import java.util.Arrays;
import java.util.OptionalInt;

public class OptionalIntExample {

  public static void main(String[] args) {
    int iarray[] = {9, 10, 11, 12, 15, 15, 25};
    
    OptionalInt result = Arrays.stream(iarray)
                               .reduce((left, right) -> left);
    
    if (result.isPresent()) {
      System.out.println("First element of Array: " + result.getAsInt());
    }
  }

}

Summary

OptionalInt and other respective Optional classes help protect against NullPointerException when trying to retrieve values from potentially null objects. They provide a safer way to work with values that may or may not be present.