Navegando com segurança em cadeias de chamadas "Get" com opcionais
Na programação Java, é comum encontrar cadeias de chamadas "get", como o seguinte:
house.getFloor(0).getWall(WEST).getDoor().getDoorknob();
Para evitar potenciais NullPointerExceptions, os desenvolvedores geralmente recorrem a verificações nulas detalhadas:
if (house != null &&& house.getFloor(0) &&& house.getFloor(0).getWall(WEST) != null &&& house.getFloor(0).getWall(WEST).getDoor() != null) ...
Essa abordagem se torna ainda mais complicada com cadeias de chamadas mais longas. Existe uma solução mais elegante?
Sim, com a introdução do tipo Opcional no Java 8, o tratamento de nulos em cadeias de obtenção tornou-se significativamente mais fácil.
Usando Opcional para Tratamento de Nulos
Optional é uma classe wrapper que representa um valor opcional. Ele pode conter um valor não nulo ou estar vazio.
Para usar Opcional para tratamento nulo em cadeias de get, podemos utilizar seus recursos de encadeamento com o método map().
Considere o seguinte exemplo:
Optional.ofNullable(house) .map(house -> house.getFloor(0)) .map(floorZero -> floorZero.getWall(WEST)) .map(wallWest -> wallWest.getDoor()) .map(door -> wallWest.getDoor());
Este código cria uma cadeia de objetos opcionais, cada um representando o resultado da chamada get correspondente.
Benefícios do uso Opcional
Usar Opcional oferece vários benefícios:
Conclusão
Se você não conseguir evitar quebrar a Lei de Deméter, usar Opcional é uma abordagem altamente recomendada para navegar com segurança nas cadeias de "get " chama. Ele fornece uma maneira elegante e eficiente de lidar com nulos, garantindo a robustez e confiabilidade do seu código.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3