Opcional é definido como uma classe de contêiner em Java, ou melhor, um contêiner com apenas um elemento é armazenado.
Objeto de contêiner que pode ou não conter um valor não nulo.
Estrutura de classe opcional Propriedades opcionais
A classe opcional contém duas propriedades:
Atributo da classe: atributo de objeto vazio: valor
O atributo vazio é usado para armazenar um objeto opcional com valor nulo.
O atributo de valor é usado para armazenar objetos não nulos.
Método opcional
Opcional possui dois métodos de construção, os quais são modificados por privado.
private opcional () {this.value = null;} private opcional (valor t) {this.value = objects.requiirononnull (value);}O método de construção sem parâmetros é usado para inicializar vazio. O construtor de parâmetros é usado para inicializar objetos não nulos.
Como o construtor é modificado para ser privado, opcional só pode chamar objetos através de métodos de classe, se desejar instanciar. Opcional fornece três métodos de classe.
vazio: retorna o objeto opcional com valor nulo de: Retorna o valor de não anúncio do objeto opcional de Nullable: o valor do valor retorna o objeto opcional correspondente de acordo com se o parâmetro é nulo ou não.
public static <t> opcional <t> vazio () {opcional <t> t = (opcional <t>) vazio; return t;} public static <t> opcional <T> de (valor t) {retorna novo opcional <> (value);} public static <t> opcional <t> ofnullable (valor t) {return value == null? vazio (): de (valor);}Exemplo de introdução do método
| método | Tipo de parâmetro | Tipo de retorno | ilustrar | |
|---|---|---|---|---|
| pegar | nenhum | T | Valor lança a exceção de NocchelementException para NULL | |
| ispresent | nenhum | booleano | Se o valor for nulo, false será devolvido | |
| ifpresent | Consumidor <? super t> | vazio | Se a instância opcional tiver um valor, ligue para o consumidor, caso contrário, ele não será processado. | |
| filtro | Predicado <? super t> | Opcional <T> | Se o valor existir e satisfazer o predicado fornecido, um objeto opcional, incluindo o valor, será retornado; Caso contrário, um objeto opcional vazio é retornado | |
| mapa | Função <? Super T ,? estende u> | Opcional <u> | Se o valor existir, a chamada de função de mapeamento fornecida será executada no valor e o objeto opcional <u> será retornado. | |
| Flatmap | Função <? Super T, opcional <u>> | Opcional <u> | Se o valor existir, a chamada de função de mapeamento fornecida será executada no valor, retornando um objeto opcional não nulo. | |
| Orelse | T | T | Retorne -o se houver um valor, caso contrário, retorne um valor padrão | |
| orelseget | Fornecedor <? estende T> | T | Retorna o valor se houver um valor, caso contrário, retorna um valor gerado pela interface do fornecedor especificado | |
| ORRELSETHROW | Fornecedor <? estende x> | <X se estende por arremesso> | Retorne -o se houver um valor, caso contrário, uma exceção gerada pela interface do fornecedor especificada é jogada | |