logo

Clase opcional de Java

Java introdujo una nueva clase Opcional en jdk8. Es una clase final pública y se utiliza para tratar NullPointerException en una aplicación Java. Debe importar el paquete java.util para utilizar esta clase. Proporciona métodos que se utilizan para verificar la presencia de valor para una variable en particular.

Métodos de clase opcionales de Java

Métodos Descripción
público estático Opcional vacío() Devuelve un objeto opcional vacío. No hay ningún valor presente para este opcional.
estática pública Opcional de (valor T) Devuelve un Opcional con el valor presente no nulo especificado.
público estático Opcional de Nullable (valor T) Devuelve un Opcional que describe el valor especificado, si no es nulo; de lo contrario, devuelve un Opcional vacío.
público T get() Si hay un valor presente en este Opcional, devuelve el valor; de lo contrario, arroja NoSuchElementException.
público booleano está presente () Devuelve verdadero si hay un valor presente; en caso contrario, falso.
vacío público si presente (consumidor consumidor) Si hay un valor presente, invoque al consumidor especificado con el valor; de lo contrario, no haga nada.
filtro opcional público (predicado predicado) Si hay un valor presente y el valor coincide con el predicado dado, devuelve un Opcional que describe el valor; de lo contrario, devuelve un Opcional vacío.
mapa opcional público (mapeador de funciones) Si hay un valor presente, aplíquele la función de mapeo proporcionada y, si el resultado no es nulo, devuelva un Opcional que describa el resultado. De lo contrario, devolverá un Opcional vacío.
público FlatMap opcional (Función Si hay un valor presente, aplíquele la función de mapeo de soporte opcional proporcionada, devuelva ese resultado; de lo contrario, devuelva un Opcional vacío.
público T o si no (T otro) Devuelve el valor si está presente; en caso contrario, devuelve otro.
public T orElseGet(Proveedor otro) Devuelve el valor si está presente; de ​​lo contrario, invoca otro y devuelve el resultado de esa invocación.
public T orElseThrow(Excepción del proveedorProveedor) lanza X extiende Throwable Devuelve el valor contenido, si está presente; de ​​lo contrario, genera una excepción que será creada por el proveedor proporcionado.
público booleano es igual (Objeto obj) Indica si algún otro objeto es 'igual a' este Opcional o no. El otro objeto se considera igual si:
  • También es Opcional y;
  • Ambas instancias no tienen valor presente o;
  • los valores actuales son 'iguales' entre sí mediante iguales ().
código hash int público() Devuelve el valor del código hash del valor actual, si lo hay, o devuelve 0 (cero) si no hay ningún valor presente.
cadena pública a cadena () Devuelve una representación de cadena no vacía de este Opcional adecuada para la depuración. El formato de presentación exacto no se especifica y puede variar entre implementaciones y versiones.

Ejemplo: Programa Java sin usar Opcional

En el siguiente ejemplo, no utilizamos la clase Opcional. Este programa finaliza de forma anormal y genera una excepción nullPointerException.

 public class OptionalExample { public static void main(String[] args) { String[] str = new String[10]; String lowercaseString = str[5].toLowerCase(); System.out.print(lowercaseString); } } 

Producción:

 Exception in thread 'main' java.lang.NullPointerException at lambdaExample.OptionalExample.main(OptionalExample.java:6) 

Para evitar una terminación anormal, utilizamos la clase Opcional. En el siguiente ejemplo, utilizamos Opcional. Entonces, nuestro programa puede ejecutarse sin fallar.


Ejemplo opcional de Java: si el valor no está presente

 import java.util.Optional; public class OptionalExample { public static void main(String[] args) { String[] str = new String[10]; Optional checkNull = Optional.ofNullable(str[5]); if(checkNull.isPresent()){ // check for value is present or not String lowercaseString = str[5].toLowerCase(); System.out.print(lowercaseString); }else System.out.println('string value is not present'); } } 

Producción:

 string value is not present 

Ejemplo opcional de Java: si el valor está presente

 import java.util.Optional; public class OptionalExample { public static void main(String[] args) { String[] str = new String[10]; str[5] = 'JAVA OPTIONAL CLASS EXAMPLE';// Setting value for 5th index Optional checkNull = Optional.ofNullable(str[5]); if(checkNull.isPresent()){ // It Checks, value is present or not String lowercaseString = str[5].toLowerCase(); System.out.print(lowercaseString); }else System.out.println('String value is not present'); } } 

Producción:

 java optional class example 

Otro ejemplo opcional de Java

 import java.util.Optional; public class OptionalExample { public static void main(String[] args) { String[] str = new String[10]; str[5] = 'JAVA OPTIONAL CLASS EXAMPLE'; // Setting value for 5th index Optional checkNull = Optional.ofNullable(str[5]); checkNull.ifPresent(System.out::println); // printing value by using method reference System.out.println(checkNull.get()); // printing value by using get method System.out.println(str[5].toLowerCase()); } } 

Producción:

 JAVA OPTIONAL CLASS EXAMPLE JAVA OPTIONAL CLASS EXAMPLE java optional class example 

Ejemplo de métodos opcionales de Java

 import java.util.Optional; public class OptionalExample { public static void main(String[] args) { String[] str = new String[10]; str[5] = 'JAVA OPTIONAL CLASS EXAMPLE'; // Setting value for 5th index // It returns an empty instance of Optional class Optional empty = Optional.empty(); System.out.println(empty); // It returns a non-empty Optional Optional value = Optional.of(str[5]); // If value is present, it returns an Optional otherwise returns an empty Optional System.out.println('Filtered value: '+value.filter((s)->s.equals('Abc'))); System.out.println('Filtered value: '+value.filter((s)->s.equals('JAVA OPTIONAL CLASS EXAMPLE'))); // It returns value of an Optional. if value is not present, it throws an NoSuchElementException System.out.println('Getting value: '+value.get()); // It returns hashCode of the value System.out.println('Getting hashCode: '+value.hashCode()); // It returns true if value is present, otherwise false System.out.println('Is value present: '+value.isPresent()); // It returns non-empty Optional if value is present, otherwise returns an empty Optional System.out.println('Nullable Optional: '+Optional.ofNullable(str[5])); // It returns value if available, otherwise returns specified value, System.out.println('orElse: '+value.orElse('Value is not present')); System.out.println('orElse: '+empty.orElse('Value is not present')); value.ifPresent(System.out::println); // printing value by using method reference } } 

Producción:

 Optional.empty Filtered value: Optional.empty Filtered value: Optional[JAVA OPTIONAL CLASS EXAMPLE] Getting value: JAVA OPTIONAL CLASS EXAMPLE Getting hashCode: -619947648 Is value present: true Nullable Optional: Optional[JAVA OPTIONAL CLASS EXAMPLE] orElse: JAVA OPTIONAL CLASS EXAMPLE orElse: Value is not present JAVA OPTIONAL CLASS EXAMPLE