Pular para o conteúdo

Boas Práticas – Dica nº 1

Bom dia,

Ter um blog não é nada fácil, este aqui por exemplo está abandonado já faz quase um mês. A maior dificuldade é encontrar assuntos pra postar. Por isso tive uma idéia, postar uma série de dicas de boas práticas de codificação.
A idéia é mostrar com dicas simples como melhorar o código, evitando erros e melhorando a codificação.

Nesta primeira dica, mostrarei como evitar um NullPointerException toda vez em que fazemos uma comparação com objetos com uma constante. Muita gente já conhece essa técnica, principalmente os mais experientes, mas nunca é demais lembrar.

A dica é: Sempre coloque a constante à esquerda (ou o objeto que você terá certeza que não estará nulo) da condição.

Veja o exemplo abaixo:
[sourcecode lang=java]
public boolean validar(String result) {

if (“OK”.equals(result)) {
return true;
} else {
return false;
}

}[/sourcecode]
O código acima compara o parâmetro result com a constante OK que está a esquerda da condição.
Se result for nulo o método retornará false.

Já dei manutenção em código que estava assim:
[sourcecode lang=java]
public boolean validar(String result) {
if (result == null) {
result = “”;
}
if (“OK”.equals(result)) {
return true;
} else {
return false;
}

}[/sourcecode]
Percebam que colocaram um if desnecessário só para atribuir uma string vazia ao parâmetro, afim de evitar o NullPointerException no próximo if. Além de ser feio fazer atribuições aos parâmetros, aumenta a complexidade de uma futura manutenção.

Por hoje é só.

Até mais,
Roberto

1 comentário em “Boas Práticas – Dica nº 1”

  1. Então vamos melhorar ainda mais:

    public boolean validar(String result) {
    return “OK”.equals(result);
    }

    Sem dizer que dava pra usar as Commons da Apache que todas são Null Safe ( ou Safe Null ?!).

    O nome do metodo podria ser isEmpty(). E, o “OK” poderia esta numa variavel privada, estatica e final.

    []’s

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *