Java Language Devolver valor predeterminado si Opcional está vacío


Ejemplo

No solo use Optional.get() ya que puede lanzar NoSuchElementException . Los métodos Optional.orElse(T) y Optional.orElseGet(Supplier<? extends T>) proporcionan una manera de proporcionar un valor predeterminado en caso de que el Opcional esté vacío.

String value = "something";

return Optional.ofNullable(value).orElse("defaultValue");
// returns "something"

return Optional.ofNullable(value).orElseGet(() -> getDefaultValue());
// returns "something" (never calls the getDefaultValue() method)
String value = null;

return Optional.ofNullable(value).orElse("defaultValue");
// returns "defaultValue"

return Optional.ofNullable(value).orElseGet(() -> getDefaultValue());
// calls getDefaultValue() and returns its results

La diferencia crucial entre orElse y orElseGet es que este último solo se evalúa cuando el opcional está vacío, mientras que el argumento suministrado al anterior se evalúa incluso si el opcional no está vacío. Por lo tanto, el orElse solo debe usarse para constantes y nunca para suministrar valor en base a ningún tipo de cálculo.