Um Opcional objeto em Java é um objeto contêiner que pode conter valores vazios e não nulos. Se um objeto opcional contém um valor, dizemos que ele é presente; se não contiver um valor, dizemos que é vazio. Aqui, daremos uma olhada na classe Optionally available em Java e como ela pode ser usada para ajudar a melhorar seu código. Também veremos algumas das desvantagens de usar a Opcional palavra-chave em Java e algumas práticas recomendadas.
Pule para:
O que é o tipo opcional em Java?
Opcional é um novo tipo introduzido no Java 8. Ele é usado para representar um valor que pode ou não estar presente. Em outras palavras, um Opcional objeto pode conter um valor não nulo (caso em que é considerado presente) ou pode não conter nenhum valor (caso em que é considerado vazio).
Um objeto opcional pode ter um dos seguintes estados possíveis:
- Presente: O objeto Opcional não representa ausência. Um valor está no objeto Opcional e pode ser acessado invocando o pegar() método.
- Ausente:O objeto opcional representa a ausência de um valor; você não pode acessar seu conteúdo com o pegar() método.
Por que os desenvolvedores precisam de opcionais em Java?
Opcional é geralmente usado como um tipo de retorno para métodos que nem sempre têm um resultado a retornar. Por exemplo, um método que procura um usuário por EU IA pode não encontrar uma correspondência, caso em que retornaria um objeto Optionally available vazio.
Opcional pode ajudar a reduzir o número de exceções de ponteiro nulo em seu código também. Não se destina a substituir tipos de referência existentes, como Corda ou Listamas sim como uma adição ao sistema de tipos Java.
Como criar um objeto opcional em Java
Existem várias maneiras de criar um objeto opcional em Java, incluindo os métodos de fábrica estáticos vazio() e de()que pertencem à classe Opcional. Você pode criar um objeto Opcional usando o de() método, que retornará um objeto Optionally available contendo o valor fornecido se o valor não for nulo, ou um objeto Optionally available vazio se o valor for nulo.
Os programadores também podem usar o deAnulável() método, que retornará um objeto Optionally available vazio se o valor for nulo, ou um objeto Optionally available contendo o valor fornecido se ele não for nulo. Finalmente, você pode criar um objeto Optionally available vazio usando o vazio() método.
Depois de criar um objeto opcional, você pode usar o é presente() método para verificar se contém um valor não nulo. Se sim, você pode usar o pegar() método para recuperar o valor. Os desenvolvedores também podem usar o obterOuSenão() método, que retornará o valor se estiver presente, ou um valor padrão se não estiver.
Ler: Introdução às courses internas em Java
Os métodos Java isPresent e ifPresent
Os desenvolvedores podem tirar proveito do é presente método para verificar se um objeto opcional está vazio ou não vazio. O se presente método, enquanto isso, pode verificar se um objeto Optionally available específico não está vazio. O exemplo de código a seguir ilustra como você pode trabalhar com o se presente e é presente métodos em Java:
import java.util.Optionally available; public class OptionalDemo { public static void foremost(String() args) { Optionally available obj1 = Optionally available.of ("This can be a pattern textual content"); Optionally available obj2 = Optionally available.empty(); if (obj1.isPresent()) { System.out.println ("isPresent methodology known as on obj1 returned true"); } obj1.ifPresent(s -> System.out.println ("ifPresent methodology known as on obj1")); obj2.ifPresent(s -> System.out.println ("ifPresent methodology known as on obj2 ")); } }
No exemplo de código acima, primeiro verificamos se existem dois objetos opcionais, usando o é presente() método. Atribuímos um valor a obj1então ele imprimirá a string “Este é um texto de exemplo”. obj2no entanto, foi atribuído um valor vazio, então não imprimirá nada. Então imprimimos mais algum texto para nos alertar que se presente foi chamado em ambos os nossos objetos opcionais.
Como usar objetos opcionais em Java
Existem várias maneiras de criar objetos opcionais. A maneira mais comum é usar o método de fábrica estático Opcional.de(T)que cria um objeto Optionally available que está presente e contém o valor não nulo fornecido, conforme mostrado no trecho de código abaixo:
Optionally available non-compulsory = Optionally available.of("worth");
Além disso, podemos criar um objeto opcional vazio usando o método de fábrica estático Opcional.vazioconforme mostrado no exemplo de código abaixo:
Optionally available non-compulsory = Optionally available.empty();
Se tivermos um valor que pode ser nulo, podemos usar o método de fábrica estático Opcional.ofNullable(T) para criar um objeto opcional que pode ou não estar presente:
Optionally available non-compulsory = Optionally available.ofNullable(null);
Os programadores também podem usar métodos como se presente() e se não() se você precisar executar alguma ação com base em se o opcional foi definido (se ele contém um determinado valor) ou não, respectivamente:
Optionally available optionalString = Optionally available.of("worth"); optionalString.ifPresent(s -> System.out.println(s));
Prós e contras do uso de objetos opcionais em Java
Existem algumas vantagens importantes no uso de Optionally available que os desenvolvedores Java devem conhecer, incluindo:
- Opcional pode ajudar a prevenir Null Pointer Exception erros ao explicitar quando uma variável pode ou não conter um valor. Isso pode levar a um código mais limpo e legível.
- Opcional fornece vários métodos que podem ser usados para trabalhar com segurança com dados que podem ou não estar presentes.
- Opcional pode ser usado como uma classe comum, o que significa que não há necessidade de sintaxe especial para invocar métodos ou acessar campos.
Apesar desses benefícios, há algumas desvantagens potenciais em usar Optionally available também:
- Opcional pode adicionar uma sobrecarga significativa ao tempo de execução do código, pois o wrapper Opcional deve ser criado e verificado sempre que uma variável é acessada.
- Alguns desenvolvedores acham o Optionally available confuso e difícil de trabalhar, o que pode levar a mais erros em vez de menos, e mais tempo e esforço de desenvolvimento do que o regular como resultado.
Ler: Melhores ferramentas de gerenciamento de projetos para desenvolvedores
Alternativas ao uso de objetos opcionais em Java
Existem algumas alternativas ao uso de Opcional, como usar o verificação nula operador (?.)usando um se-senão declaração, ou usando um ternário operador.
O operador de verificação nulo pode ser usado para verificar se um valor é nulo antes de acessá-lo. Isso pode ser feito usando o ?. operador antes do nome da variável. Por exemplo, o seguinte código Java verificará se a variável abc é nulo antes de acessá-lo:
if (abc != null) { //Write your code right here }
Se a variável abc não é nulo, o código dentro do se a declaração será executada. A se-senão A instrução no código acima verifica se o valor é nulo antes de acessá-lo.
Melhores práticas para usar opcional
Abaixo estão algumas práticas recomendadas a serem consideradas ao usar Optionally available em seu código Java:
- Use Opcional para reduzir a quantidade de exceções de ponteiros nulos e contabilizar os momentos em que os valores retornados estão vazios ou ausentes.
- Não use Optionally available como um stop-all para todo tipo de ponteiros nulos. Os codificadores ainda precisam considerar parâmetros de método e construtor que também podem conter valores vazios.
- Considere o contexto dos seus objetos Opcionais; valores Opcionais ausentes podem significar coisas diferentes, como um valor específico não ser encontrado versus nenhum valor ser encontrado. Considere essas possibilidades.
- Use Optionally available como um tipo de retorno e então recupere seu valor se ele estiver presente ou forneça um resultado diferente caso contrário.
- Não use o parâmetro Optionally available a para métodos ou construtores. Usá-lo dessa maneira resulta em código desleixado, difícil de ler e difícil de manter.
Considerações finais sobre o uso de objetos opcionais em Java
Opcional é um novo recurso no Java 8 que fornece uma maneira de manipular valores nulos de uma forma mais elegante. O java.util.Opcional A classe foi introduzida no Java 8 como uma forma de resolver o problema comum de exceções de ponteiro nulo. Ao usar Optionally available, os programadores podem evitar Exceções de ponteiro nulo e escrever código mais limpo.
Quer aprender mais sobre objetos e courses em Java? Recomendamos a leitura do nosso tutorial O que é uma classe abstrata em Java como próximo passo.