Use orElseGet:
Optional<String> startingOptional = getMyOptional();
String finishingValue = startingOptional.orElseGet(() -> {
    System.out.println("value not found");
    return "";
});
Using .map(value -> value) is useless: transforming a value into itself doesn’t change anything.
solved Is there a way to combine Java8 Optional returning a value with printing a message on null?