Java Language Usando contenedores opcionales para tipos de números primitivos


Ejemplo

OptionalDouble , OptionalInt y OptionalLong funcionan como Optional , pero están diseñados específicamente para envolver tipos primitivos:

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

Debido a que los tipos numéricos tienen un valor, no hay un manejo especial para el valor nulo. Los contenedores vacíos se pueden revisar con:

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

Del mismo modo, existen métodos abreviados para ayudar a la gestión del valor:

// 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();