Optional ifPresentOrElse() method in Java with examples

The ifPresentOrElse(Consumer, Runnable) method of java.util.Optional class helps us to perform the specified Consumer action the value of this Optional object. If a value is not present in this Optional, then this method performs the given empty-based Runnable emptyAction, passed as the second parameter

Syntax:

public void ifPresentOrElse(Consumer<T> action,
                            Runnable emptyAction)

Parameters: This method accepts two parameters:



  • action: which is the action to be performed on this Optional, if a value is present.
  • emptyAction: which is the empty-based action to be performed, if no value is present.

Return value: This method returns nothing.

Exception: This method throw NullPointerException if a value is present and the given action is null, or no value is present and the given empty-based action is null.

Below programs illustrate ifPresentOrElse() method:

Note: As this method was added in Java 9, the programs need JDK 9 to execute.

Program 1:

filter_none

edit
close

play_arrow

link
brightness_4
code

// Java program to demonstrate
// Optional.ifPresentOrElse() method
  
import java.util.*;
  
public class GFG {
  
    public static void main(String[] args)
    {
  
        // create a Optional
        Optional<Integer> op
            = Optional.of(9455);
  
        // print value
        System.out.println("Optional: "
                           + op);
  
        // apply ifPresentOrElse
        op.ifPresentOrElse(
            (value)
                -> { System.out.println(
                         "Value is present, its: "
                         + value); },
            ()
                -> { System.out.println(
                         "Value is empty"); });
    }
}

chevron_right


Output:

Optional: Optional[9455]
Value is present, its: 9455

Program 2:

filter_none

edit
close

play_arrow

link
brightness_4
code

// Java program to demonstrate
// Optional.ifPresentOrElse method
  
import java.util.*;
  
public class GFG {
  
    public static void main(String[] args)
    {
  
        // create a Optional
        Optional<Integer> op
            = Optional.empty();
  
        // print value
        System.out.println("Optional: "
                           + op);
  
        try {
  
            // apply ifPresentOrElse
            op.ifPresentOrElse(
                (value)
                    -> { System.out.println(
                             "Value is present, its: "
                             + value); },
                ()
                    -> { System.out.println(
                             "Value is empty"); });
        }
        catch (Exception e) {
            System.out.println(e);
        }
    }
}

chevron_right


Output:

Optional: Optional.empty
Value is empty

Reference: https://docs.oracle.com/javase/9/docs/api/java/util/Optional.html#ifPresentOrElse-java.util.function.Consumer-java.lang.Runnable-



My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.