Opcional se define como una clase de contenedor en Java, o más bien, se almacena un contenedor con un solo elemento.
Objeto contenedor que puede o no contener un valor no nulo.
Estructura de clase opcional Propiedades opcionales
La clase opcional contiene dos propiedades:
Atributo de clase: Atributo de objeto vacío: valor
El atributo vacío se usa para almacenar un objeto opcional con valor nulo.
El atributo de valor se utiliza para almacenar objetos no nulos.
Método opcional
Opcional tiene dos métodos de construcción, los cuales son modificados por privados.
privado opcional () {this.value = null;} private opcional (t value) {this.value = objects.requirenonnull (valor);}El método de construcción sin parámetros se utiliza para inicializar el vacío. El constructor de parámetros se utiliza para inicializar objetos no nulos.
Debido a que el constructor se modifica para ser privado, opcional solo puede llamar a objetos a través de métodos de clase si desea instanciar. Opcional proporciona tres métodos de clase.
Vacío: Devuelve el objeto opcional con valor nulo de: Devuelve el valor de no nulo de objeto opcional de anulable: el valor del valor devuelve el objeto opcional correspondiente de acuerdo con si el parámetro es nulo o no.
public static <t> opcional <t> vacía () {opcional <t> t = (opcional <t>) vacía; return t;} public static <t> opcional <t> de (t value) {return nuevo opcional <> (valor);} public static <t> opcional <t> of Nullable (t value) {return value == null? vacía (): de (valor);}Introducción del método de ejemplo
| método | Tipo de parámetro | Tipo de retorno | ilustrar | |
|---|---|---|---|---|
| conseguir | ninguno | T | Value lanza NosucChelementException Exception para NULL | |
| ISPRESENT | ninguno | booleano | Si el valor es nulo, se devolverá falso | |
| Ifwresent | Consumidor <? Super t> | vacío | Si la instancia opcional tiene un valor, llame al consumidor, de lo contrario no se procesará. | |
| filtrar | Predicado <? Super t> | Opcional <T> | Si el valor existe y satisface el predicado provisto, se devuelve un objeto opcional que incluye el valor; de lo contrario, se devuelve un objeto opcional vacío | |
| mapa | Función <?? Super T ,? extiende u> | Opcional <u> | Si el valor existe, la llamada de función de mapeo proporcionada se ejecuta en el valor, y se devuelve el objeto <u> opcional. | |
| mapa de piso | Función <?? super t, opcional <u>> | Opcional <u> | Si el valor existe, la llamada de función de mapeo proporcionada se ejecuta en el valor, devolviendo un objeto opcional no nulo. | |
| orelse | T | T | Devolverlo si hay un valor, de lo contrario devolver un valor predeterminado | |
| orelería | Proveedor <? extiende t> | T | Devuelve el valor si hay un valor, de lo contrario devuelve un valor generado por la interfaz de proveedor especificada | |
| Orelsethrow | Proveedor <? extiende x> | <X extiende lanzable> | Devolverlo si hay un valor, de lo contrario se lanza una excepción generada por la interfaz de proveedor especificada | |