logo

Classe Opcional Java

Java introduziu uma nova classe Opcional no jdk8. É uma classe final pública e usada para lidar com NullPointerException em aplicativos Java. Você deve importar o pacote java.util para usar esta classe. Ele fornece métodos que são usados ​​para verificar a presença de valor para uma determinada variável.

Métodos de classe opcionais Java

Métodos Descrição
público estático Opcional vazio() Ele retorna um objeto Opcional vazio. Nenhum valor está presente para este Opcional.
public static Opcional de (valor T) Ele retorna um Opcional com o valor presente não nulo especificado.
public static Opcional ofNullable (valor T) Ele retorna um Opcional que descreve o valor especificado, se não for nulo, caso contrário, retorna um Opcional vazio.
público T get() Se um valor estiver presente neste Opcional, retornará o valor, caso contrário, lançará NoSuchElementException.
booleano público isPresent() Retorna verdadeiro se houver um valor presente, caso contrário, falso.
public void ifPresent(Consumidor consumidor) Se um valor estiver presente, invoque o consumidor especificado com o valor, caso contrário não faça nada.
filtro opcional público (predicado predicado) Se um valor estiver presente e o valor corresponder ao predicado fornecido, retorne um Opcional descrevendo o valor, caso contrário, retorne um Opcional vazio.
mapa opcional público (mapeador de funções) Se um valor estiver presente, aplique a ele a função de mapeamento fornecida e, se o resultado não for nulo, retorne um Opcional descrevendo o resultado. Caso contrário, retorne um opcional vazio.
public Opcional flatMap(Função Se um valor estiver presente, aplique a função de mapeamento opcional fornecida a ele, retorne esse resultado, caso contrário, retorne um Opcional vazio.
público T ou Else (T outro) Ele retorna o valor se estiver presente, caso contrário, retorna outro.
public T orElseGet(Outro fornecedor) Ele retorna o valor se presente, caso contrário, invoca other e retorna o resultado dessa invocação.
public T orElseThrow(Exceção do fornecedorFornecedor) lança X estende Throwable Retorna o valor contido, se presente, caso contrário lança uma exceção a ser criada pelo fornecedor fornecido.
booleano público é igual (objeto objeto) Indica se algum outro objeto é 'igual' a este Opcional ou não. O outro objeto é considerado igual se:
  • Também é opcional e;
  • Ambas as instâncias não têm valor presente ou;
  • os valores presentes são 'iguais' entre si via equals().
hashCode int público() Ele retorna o valor do código hash do valor presente, se houver, ou retorna 0 (zero) se nenhum valor estiver presente.
String pública paraString() Ele retorna uma representação de string não vazia deste Opcional adequada para depuração. O formato exato de apresentação não é especificado e pode variar entre implementações e versões.

Exemplo: Programa Java sem usar Opcional

No exemplo a seguir, não estamos usando a classe Opcional. Este programa termina de forma anormal e gera uma nullPointerException.

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

Saída:

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

Para evitar o encerramento anormal, usamos a classe Opcional. No exemplo a seguir, estamos usando Opcional. Assim, nosso programa pode ser executado sem travar.


Exemplo opcional de Java: se o valor não estiver 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'); } } 

Saída:

 string value is not present 

Exemplo opcional de Java: se o valor estiver 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'); } } 

Saída:

 java optional class example 

Outro exemplo 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()); } } 

Saída:

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

Exemplo de métodos opcionais 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 } } 

Saída:

 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