Java Language Restituisce il valore predefinito se Opzionale è vuoto


Esempio

Non utilizzare semplicemente Optional.get() poiché potrebbe generare NoSuchElementException . I metodi Optional.orElse(T) e Optional.orElseGet(Supplier<? extends T>) forniscono un modo per fornire un valore predefinito nel caso in cui l'opzione sia vuota.

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 differenza cruciale tra orElse e orElseGet è che quest'ultimo viene valutato solo quando l'opzione è vuota mentre l'argomento fornito a quello precedente viene valutato anche se l'opzione non è vuota. orElse , orElse dovrebbe essere utilizzato solo per le costanti e mai per fornire valore basato su qualsiasi tipo di calcolo.