Saltar al contenido

Java 8 opcional – javatpoint

octubre 16, 2021

Java introdujo una nueva clase Opcional en jdk8. Es una clase final pública y se utiliza para tratar con NullPointerException en la aplicación Java. Debe importar el paquete java.util para usar 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
public static Opcional empty () Devuelve un objeto opcional vacío. No hay ningún valor presente para este opcional.
public static Opcional de (valor T) Devuelve un Opcional con el valor actual no nulo especificado.
public static Opcional ofNullable (valor T) Devuelve un Opcional que describe el valor especificado, si no es nulo; de lo contrario, devuelve un Opcional vacío.
public T get () Si hay un valor presente en este Opcional, devuelve el valor; de lo contrario, arroja NoSuchElementException.
public boolean isPresent () Devuelve verdadero si hay un valor presente; de ​​lo contrario, es falso.
public void ifPresent (consumidor super T> consumidor) Si hay un valor, invoque al consumidor especificado con el valor; de lo contrario, no haga nada.
public Filtro opcional (predicado super T> del 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.
public Opcional map (Función super T ,? extiende U> mapper) 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, devuelva un opcional vacío.
public Opcional flatMap (Función super T, Mapeador opcional) Si hay un valor presente, aplíquele la función de mapeo de cojinete opcional proporcionada, devuelva ese resultado; de lo contrario, devuelva un Opcional vacío.
public T orElse (T otro) Devuelve el valor si está presente; de ​​lo contrario, devuelve otro.
public T orElseGet (Proveedor extiende T> otro) Devuelve el valor si está presente; de ​​lo contrario, invoca a otro y devuelve el resultado de esa invocación.
public T oElseThrow (Proveedor extiende X> exceptionSupplier) lanza X extiende Throwable Devuelve el valor contenido, si está presente; de ​​lo contrario, lanza una excepción para ser creada por el proveedor proporcionado.
public boolean es igual a (Object 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 presentes son «iguales» entre sí mediante equals ().
public int hashCode () 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 toString () Devuelve una representación de cadena no vacía de este Opcional adecuada para la depuración. El formato de presentación exacto no está especificado y puede variar entre implementaciones y versiones.

Ejemplo: programa Java sin utilizar Opcional

En el siguiente ejemplo, no estamos usando la clase Opcional. Este programa termina de forma anormal y arroja una nullPointerException.

public class OptionalExample {public static void main (String[] args) {String[] str = nueva cadena[10]; Cadena lowercaseString = str[5].toLowerCase (); System.out.print (cadena en minúsculas); }}

Producción:

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

Para evitar la terminación anormal, usamos la clase Opcional. En el siguiente ejemplo, usamos 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 = nueva cadena[10]; opcional checkNull = Optional.ofNullable (str[5]); if (checkNull.isPresent ()) {// comprobar si el valor está presente o no String lowercaseString = str[5].toLowerCase (); System.out.print (cadena en minúsculas); } else System.out.println («el valor de la cadena no está presente»); }}

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 = nueva cadena[10]; str[5] = «EJEMPLO DE CLASE OPCIONAL DE JAVA»; // Valor de configuración para el quinto índice Opcional checkNull = Optional.ofNullable (str[5]); if (checkNull.isPresent ()) {// Verifica, el valor está presente o no String lowercaseString = str[5].toLowerCase (); System.out.print (cadena en minúsculas); } else System.out.println («El valor de la cadena no está presente»); }}

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 = nueva cadena[10]; str[5] = «EJEMPLO DE CLASE OPCIONAL DE JAVA»; // Valor de configuración para el quinto índice Opcional checkNull = Optional.ofNullable (str[5]); checkNull.ifPresent (System.out :: println); // imprimiendo el valor usando el método de referencia System.out.println (checkNull.get ()); // imprimiendo el valor usando el método get 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 = nueva cadena[10]; str[5] = «EJEMPLO DE CLASE OPCIONAL DE JAVA»; // Valor de configuración para el 5º índice // Devuelve una instancia vacía de la clase Opcional Opcional vacío = Opcional.empty (); System.out.println (vacío); // Devuelve un valor opcional opcional no vacío = Optional.of (str[5]); // Si el valor está presente, devuelve un Opcional; de lo contrario, devuelve un Opcional vacío System.out.println («Valor filtrado:» + value.filter ((s) -> s.equals («Abc»))); System.out.println («Valor filtrado:» + value.filter ((s) -> s.equals («EJEMPLO DE CLASE OPCIONAL JAVA»))); // Devuelve el valor de un Opcional. si el valor no está presente, arroja una NoSuchElementException System.out.println («Obteniendo valor:» + value.get ()); // Devuelve hashCode del valor System.out.println («Obteniendo hashCode:» + value.hashCode ()); // Devuelve verdadero si el valor está presente; de ​​lo contrario, es falso System.out.println («Es el valor presente:» + value.isPresent ()); // Devuelve Opcional no vacío si el valor está presente; de ​​lo contrario, devuelve un Opcional System.out.println vacío («Nullable Optional:» + Optional.ofNullable (str[5])); // Devuelve el valor si está disponible; de ​​lo contrario, devuelve el valor especificado, System.out.println («orElse:» + value.orElse («El valor no está presente»)); System.out.println («orElse:» + empty.orElse («El valor no está presente»)); value.ifPresent (System.out :: println); // imprimiendo el valor usando la referencia del método}}

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
close