Java 8 - Clase opcional
Opcional es un objeto contenedor que se usa para contener objetos no nulos. El objeto opcional se usa para representar nulo con valor ausente. Esta clase tiene varios métodos de utilidad para facilitar que el código maneje valores como "disponibles" o "no disponibles" en lugar de verificar valores nulos. Se introduce en Java 8 y es similar a Opcional en Guava.
Declaración de clase
La siguiente es la declaración para java.util.Optional
public final class Optional<T> extends Object
Método de clase
Sr.No. | Método y descripción |
---|---|
1 |
estática Devuelve una instancia opcional vacía. |
2 | igual booleano(Objeto obj) Indica si algún otro objeto es "igual a" este Opcional. |
3 |
Filtro Si un valor está presente y el valor coincide con un predicado determinado, devuelve un Opcional que describe el valor; de lo contrario, devuelve un Opcional vacío. |
4 | Opcional flatMap(Función super T, Opcional> mapeador) Si hay un valor presente, se le aplica la función de mapeo de orientación opcional proporcionada, devuelve ese resultado; de lo contrario, devuelve un valor opcional vacío. |
5 | T obtener() Si un valor está presente en este Opcional, devuelve el valor; de lo contrario, arroja NoSuchElementException. |
6 | código hash int() Devuelve el valor del código hash del valor actual, si lo hay, o 0 (cero) si no hay ningún valor presente. |
7 | void ifPresent(Consumidor super T> consumidor) Si hay un valor presente, invoca al consumidor especificado con el valor; de lo contrario, no hace nada. |
8 | booleano está presente() Devuelve verdadero si hay un valor presente; de lo contrario, devuelve falso. |
9 | Mapa opcional (Función super T,? extiende U> mapeador) Si hay un valor presente, se le aplica la función de asignación proporcionada y, si el resultado no es nulo, devuelve un Opcional que describe el resultado. |
10 |
Devuelve un Opcional con el valor actual no nulo especificado. |
11 |
Devuelve un Opcional que describe el valor especificado, si no es nulo; de lo contrario, devuelve un Opcional vacío. |
12 | T orElse(T otro) Devuelve el valor si está presente; de lo contrario, devuelve otro. |
13 | T orElseGet(Proveedor extiende T> otro) Devuelve el valor si está presente, de lo contrario invoca otro y devuelve el resultado de esa invocación. |
14 |
Devuelve el valor contenido, si está presente; de lo contrario, genera una excepción que debe crear el proveedor proporcionado. |
15 | Cadena a Cadena() Devuelve una representación de cadena no vacía de este opcional adecuado para la depuración. |
Esta clase hereda métodos de la siguiente clase −
- java.lang.Objeto
Ejemplo opcional
Cree el siguiente programa Java utilizando cualquier editor de su elección en, por ejemplo, C:\> JAVA.
Java8Tester.java
Demostración en vivoimport java.util.Optional; public class Java8Tester { public static void main(String args[]) { Java8Tester java8Tester = new Java8Tester(); Integer value1 = null; Integer value2 = new Integer(10); //Optional.ofNullable - allows passed parameter to be null. Optional<Integer> a = Optional.ofNullable(value1); //Optional.of - throws NullPointerException if passed parameter is null Optional<Integer> b = Optional.of(value2); System.out.println(java8Tester.sum(a,b)); } public Integer sum(Optional<Integer> a, Optional<Integer> b) { //Optional.isPresent - checks the value is present or not System.out.println("First parameter is present: " + a.isPresent()); System.out.println("Second parameter is present: " + b.isPresent()); //Optional.orElse - returns the value if present otherwise returns //the default value passed. Integer value1 = a.orElse(new Integer(0)); //Optional.get - gets the value, value should be present Integer value2 = b.get(); return value1 + value2; } }
Verificar el resultado
Compile la clase usando javac compilador de la siguiente manera −
C:\JAVA>javac Java8Tester.java
Ahora ejecute Java8Tester de la siguiente manera −
C:\JAVA>java Java8Tester
Debería producir el siguiente resultado −
First parameter is present: false Second parameter is present: true 10
Java