Java Language Utilisation de conteneurs facultatifs pour les types de nombres primitifs


Exemple

OptionalDouble , OptionalInt et OptionalLong fonctionnent comme Optional , mais sont spécifiquement conçus pour envelopper les types primitifs:

OptionalInt presentInt = OptionalInt.of(value);
OptionalInt absentInt = OptionalInt.empty();

Comme les types numériques ont une valeur, il n'y a pas de traitement spécial pour null. Les conteneurs vides peuvent être vérifiés avec:

presentInt.isPresent(); // Is true.
absentInt.isPresent(); // Is false.

De même, des raccourcis existent pour faciliter la gestion de la valeur:

// Prints the value since it is provided on creation.
presentInt.ifPresent(System.out::println);

// Gives the other value as the original Optional is empty.
int finalValue = absentInt.orElseGet(this::otherValue);

// Will throw a NoSuchElementException.
int nonexistentValue = absentInt.getAsInt();