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