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:
import java.util.*;
public class GFG {
public static void main(String[] args)
{
Optional<Integer> op
= Optional.of( 9455 );
System.out.println( "Optional: "
+ op);
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:
import java.util.*;
public class GFG {
public static void main(String[] args)
{
Optional<Integer> op
= Optional.empty();
System.out.println( "Optional: "
+ op);
try {
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
Reference: https://docs.oracle.com/javase/9/docs/api/java/util/Optional.html#ifPresentOrElse-java.util.function.Consumer-java.lang.Runnable-