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