Introducción a los opcionales de Java

Estoy participando en el "Plan Nuggets·Starting"


Introducción

En Java, el puntero nulo siempre ha sido un ERROR muy problemático para los desarrolladores. Nunca se sabe dónde lanzará su programa una excepción de puntero nulo. Para manejar el problema del puntero nulo en el código de manera más elegante, Java introduce Opcionalmente este tipo,

Opcional es un nuevo tipo introducido después de Java 8, que se usa para representar un valor que puede estar vacío. Su propósito de diseño es ayudarnos a evitar excepciones nulas en el programa.

Escenas a utilizar

Los escenarios para usar Opcional correctamente son:

1. Escenarios para devolver valores, por ejemplo: se consulta un valor que puede no existir desde la base de datos.

2. Se utiliza para llamadas en cadena, por ejemplo: obtener un objeto anidado de un objeto y operar solo si existe.

Otros usos de Opcional:

  1. Uso orElseGet()y orElse()método: si el valor existe, devuelve el valor; si no, devuelve un valor predeterminado.
  2. Cómo se usa filter(): filtre los valores existentes y devuelva el valor si se cumplen ciertas condiciones; de lo contrario, devuelva un Opcional vacío.
  3. Uso map()y flatMap()método: Asigne un valor en un Opcional a otro valor y devuelva un nuevo Opcional.

En general, Optional puede ayudarnos a manejar mejor nulllos valores , pero debemos considerar cuidadosamente cómo usarlo, para no hacer que el código sea difícil de entender y mantener.

ejemplo de código

A continuación, veamos algunos ejemplos de código sobre los conceptos de Opcional.

  1. Uso orElseGet()y orElse()método:
import java.util.Optional;

public class Main {
    public static void main(String[] args) {
        Optional<String> optional = Optional.ofNullable("value");
        System.out.println(optional.orElseGet(() -> "default value"));
        System.out.println(optional.orElse("default value"));
    }
}
复制代码
输出:
value
value
复制代码

En el código anterior, si hay un valor en Opcional, tanto los métodos orElseGet()como orElse()los métodos devolverán el valor.

  1. Cómo usar filter():
import java.util.Optional;

public class Main {
    public static void main(String[] args) {
        Optional<String> optional = Optional.ofNullable("value");
        optional.filter(value -> value.length() > 5)
                .ifPresent(System.out::println);
    }
}
复制代码
输出:value
复制代码

En el código anterior, filter()el método verifica si Optional satisface una determinada condición y, de ser así, devuelve el valor; de lo contrario, devuelve un Optional vacío.

  1. Uso map()y flatMap()método:
import java.util.Optional;

public class Main {
    public static void main(String[] args) {
        Optional<String> optional = Optional.ofNullable("value");
        Optional<Integer> length = optional.map(String::length);
        System.out.println(length.orElse(-1));
    }
}
复制代码
输出:5
复制代码

在上面的代码中,map()方法接收一个函数,并将该函数应用于 Optional 中的值,并返回一个新的 Optional。

总结

希望这些代码能够帮助更好地理解Optional的概念。总之,Optional是一种有用的类,可以帮助处理可能为空的值。比如在数据库查询,或者方法参数返回值的时候使用,但是,它也有一些坑需要注意,因此需要小心使用。

Supongo que te gusta

Origin juejin.im/post/7226166594710339639
Recomendado
Clasificación