Optional es un objeto contenedor que puede o no contener un valor no nulo. Si el valor es presente, isPresent() devuelve true y get() retorna el valor. 

La siguiente es una lista de métodos útiles de la clase Optional.

1. Creación de métodos relativos a Optional:

Métodos: Optional.of, Optional.ofNullable, Optional.empty():

2. Validar el valor de Optional

Métodos: Optional.isPresent(), Optional.ifPresent():

  • isPresent() returna si Optional tiene un valor:
  • ifPresent() es igual a ejecutar un bloque de código si el valor esta presente.

Tenemos el siguiente código con validación de null antes del método Optional:

En este caso, cuando se trata de la validación de null, no se puede garantizar que data no se utilizarán sin una comprobación de null, y puede provocar la exception NullPointerException, si no se agregan la comprobación antes de usarla.

Ahora, con la opción de Optional, se puede utilizar ifPresent() para necesidades similares:

3. Obtener el valor de Optional

  • get() devuelve el valor que se encuentra en Optional
  • orElse() retorna un valor por defecto si el valor no se encuentra presente
  • orElseGet() similar a orElse(). Solo que en lugar de tomar valor, toma una función como la entrada cuando un valor no está presente en Optional.
  • orElseThrow() similar a orElseGet; pero lanza una exception en caso de que el valor sea null.

4. Lista de métodos agregados a Optional en las nuevas versiones de Java.

  • Java 9:
    • or(): Si el valor esta presente, retorna el valor del Optional, en otro caso, retorna un Optional producido por la función proveedora.
    • ifPresentOrElse(Consumer <? super T> action, Runnable emptyAction): Si el valor esta presente, realiza la acción dada por el valor, de lo contrario realiza la acción basada en el vacío.
    • stream(): Si el valor esta presente, retorna un Stream secuencial conteniendo solo el valor; en otros caso retorna un valor vacío.
  • Java 10:
    • orElseThrow(): Si el valor esta presente, retorna el valor; en otro caso, este retorna a NoSuchElementException. Este no acepta otro argumento como Java 8.
  • Java 11:
    • isEmpty(): Si el valor no esta presente, este retorna true; en otro caso, falso

5. Código completo

Puede revisar el código completo en:


Este artículo se encuentra basado en A Look at Java Optionals.

Java Optionals, ¿Que es?
Si te gusto, comparte ...Email this to someone
email
Share on Facebook
Facebook
Tweet about this on Twitter
Twitter
Share on LinkedIn
Linkedin
Etiquetado en:    

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Facebook