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:
// 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"); });    }} |
Output:
Optional: Optional[9455] Value is present, its: 9455
Program 2:
// 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);        }    }} |
Output:
Optional: Optional.empty Value is empty
