DEV Community

Lucas Valhos
Lucas Valhos

Posted on

1

Salesforce Apex - Simplificando a Manipulação de Nulos com o Operador de Coalescência Nula

Em programação, lidar com valores nulos é uma tarefa comum, mas muitas vezes complicada. No Salesforce Apex, a introdução do operador de coalescência nula (??) na última release traz uma solução elegante para este desafio, permitindo aos desenvolvedores escrever código mais limpo e eficiente.

O Que é o Operador de Coalescência Nula?

O operador de coalescência nula (??) permite definir um valor padrão para uma variável que pode ser nula, tudo em uma expressão concisa. Se a expressão à esquerda do operador for nula, o valor à direita é utilizado; caso contrário, o valor da própria expressão é mantido.

Benefícios

  • Redução de Código: Elimina a necessidade de estruturas condicionais extensas para checagem de nulos.

  • Melhoria na Legibilidade: Torna o código mais intuitivo, facilitando a manutenção e compreensão.

  • Prevenção de Erros: Minimiza a ocorrência de NullPointerException ao garantir que valores padrão sejam utilizados quando necessário.

O operador de coalescência nula é uma adição valiosa à linguagem Apex, simplificando a manipulação de valores nulos e promovendo práticas de codificação mais seguras e eficientes. Adotar esse recurso pode significar um código mais robusto, com menor risco de falhas em tempo de execução.

Exemplo 1: Valor Padrão para Strings

String nome = contato.Nome ?? "Desconhecido";
Enter fullscreen mode Exit fullscreen mode

Este código atribui o nome do contato à variável nome se não for nulo; caso contrário, atribui a string "Desconhecido

Exemplo 2: Encadeamento de Coalescência Nula

String enderecoEmail = usuario.Email ?? contato.EmailSecundario ?? "email@padrao.com";
Enter fullscreen mode Exit fullscreen mode

Aqui, o Apex tenta atribuir usuario.Email a enderecoEmail. Se usuario.Email for nulo, tenta contato.EmailSecundario, e se ambos forem nulos, utiliza "email@padrao.com".

Exemplo 3: Operações com Listas

Integer tamanhoLista = (umaLista ?? new List<String>()).size();
Enter fullscreen mode Exit fullscreen mode

Este exemplo demonstra como garantir que operações em listas não resultem em erros devido a nulos, atribuindo uma nova lista vazia caso umaLista seja nula.

Esse artigo em inglês aborda outros exemplos interessantes que podemos aplicar no dia a dia.

https://sfdclesson.com/2023/12/21/simplify-null-checks-in-apex-with-new-null-coalescing-operator/

Documentação oficial (em inglês)

https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/langCon_apex_NullCoalescingOperator.htm

Image of Timescale

🚀 pgai Vectorizer: SQLAlchemy and LiteLLM Make Vector Search Simple

We built pgai Vectorizer to simplify embedding management for AI applications—without needing a separate database or complex infrastructure. Since launch, developers have created over 3,000 vectorizers on Timescale Cloud, with many more self-hosted.

Read more

Top comments (0)

Sentry image

See why 4M developers consider Sentry, “not bad.”

Fixing code doesn’t have to be the worst part of your day. Learn how Sentry can help.

Learn more