Unfortunately, the ifPresentOrElse method you are looking for will only be added to JDK-9. You can currently write your own static method in your project:
public static <T> void ifPresentOrElse(Optional<T> optional, Consumer<? super T> action, Runnable emptyAction) { if (optional.isPresent()) { action.accept(optional.get()); } else { emptyAction.run(); } }
And use like this:
Optional<Order> optional = Optional.ofNullable(orderBean.getOrder(id)); ifPresentOrElse(optional, s -> { s.setStatus(true); pm.persist(s); }, () -> logger.warning("Order is null"));
In Java-9 it would be easier:
optional.ifPresentOrElse(s -> { s.setStatus(true); pm.persist(s); }, () -> logger.warning("Order is null"));
Tagir valeev
source share