Dicas de Java e a melhor maneira de evitar o NullPonIntexception no aplicativo Java
Em um aplicativo Java, uma NullPonIntexception (exceção do ponteiro NULL) é a melhor solução (problema). Ao mesmo tempo, um ponteiro nulo também é a chave para escrever um código de corrida robusto e suave. A frase “prevenção é melhor que o tratamento” também se aplica à desagradável NullPonIntexception. Ao aplicar técnicas de codificação defensiva e seguir as convenções entre várias peças, você pode evitar o NullPointException em grande parte. As dicas de Java a seguir podem minimizar as imagens! = código nulo para esse tipo de cheque. Como um programador Java experiente, você pode perceber que algumas dessas tecnologias são usadas em alguns projetos. Mas para estudantes universitários e desenvolvedores intermediários do primeiro ano, essa é uma ótima oportunidade de aprendizado.
Essas são algumas técnicas simples que são fáceis de aprender, mas são realmente importantes para a qualidade do código e a robustez. Na minha experiência, apenas o primeiro truque teve um grande papel na melhoria da qualidade do código.
1) Call Equal () e EqualsingNorecase () na String (String) existente em vez de objetos desconhecidos
Geralmente, o Equals () já é chamado na sequência não vazia. Como o método igual () é simétrico, chamar A.Equal () é equivalente a chamar B.Equal (), e é por isso que muitos prestam atenção aos objetos A e B, se um lado do vazio causará um ponteiro nulo.
Objeto UnknownObject = null; // Way Way - pode causar NullPointerExceptionIf (UnknownObject.Equals ("KnowDObject")) {System.err.println ("Isso pode resultar em NullPointerException se desconhecido é nulo"); System.err.println ("Codificação melhor evitada NullPointerException");}Este é o truque Java mais importante para evitar o NullPointException, mas o resultado será uma grande melhoria, porque igual () é um método muito comum.
2) Quando ambos retornam o mesmo resultado, o valueof () é preferido em vez de tostring ()
Porque um objeto vazio lançará uma NULLPointException ao chamar ToString (). Se pudermos obter o mesmo valor chamando o valor (), devemos usar o valueof (). Isso passará um valor nulo. Especialmente em casos de aulas de embalagem como Integer, Float, Double ou BigDecimla.
BigDecimal bd = getPrice (); System.out.println (string.valueof (bd)); // não joga npeSystem.out.println (bd.toString ()); // joga "Exceção em Thread" Main "java.lang.nullpointerException"
Se você não tem certeza se o objeto que você está usando está vazio, use este truque java
3) Use o método nulo ou biblioteca de classes
Existem muitos componentes de código aberto que foram verificados nulos para você agora. Um dos mais comuns é o Stringutils do Apache. Você pode usar stringUtils.isblank (), isNumberic (), iswhitespace () e outras ferramentas sem se preocupar com os métodos NullPointException.
System.out.println (stringUtils.isEmpty (null)); system.out.println (stringutils.isblank (null)); system.out.println (stringUtils.isnumeric (null);
Mas não se esqueça de ler a documentação sobre métodos e classes de segurança nula antes de tirar conclusões. Esta é outra melhor broca de Java, que não exigirá que você faça muito esforço, mas fará de você muito progresso.
4) Evite devolver a coleção vazia ou matriz vazia em vez de retornar NULL do método
Essa técnica Java também é mencionada no "Java Efetivo" de Joshua Bloch. Este livro também é uma fonte para melhorar os recursos de codificação do Java. Ao retornar uma coleção vazia ou uma matriz vazia, pode -se determinar que chamadas básicas como tamanho () e comprimento () não lançarão uma NullpointException. A classe de coleção pode fornecer uma lista, definir e mapa e mapa, (estes) coleções.
O código é o seguinte;
public list getorders (cliente cliente) {list resultado = collection.empty_list; resultado de retorno; }Da mesma forma, você pode usar coleções.Empty_List, Coleções.Empty_Set e Coleções.Empty_Map em vez de retornar NULL.
5) Comente com @NotNull e @Nullable
Ao escrever, você pode definir uma anulação de convenção, deve solicitar se esse método é nulo seguro usando comentários como @NotNull e @Nullable. Compiladores modernos, IDEs e outras ferramentas podem ler este comentário para ajudá -lo a fazer uma verificação vazia ou dizer se você precisa de uma verificação vazia. Intellijide e FindBugs já apóiam esta anotação. Esses comentários também fazem parte do JSR 305 (Nota do tradutor: pode ser entendido como o padrão de Java). Ao ver @NotNull e @Nullable, os programadores podem decidir se devem fazer a verificação vazia. A propósito, esta é a nova prática recomendada para os programadores Java, embora demore um pouco para se adaptar.
6) Siga as convenções e defina valores padrão razoáveis
No campo Java, uma das melhores maneiras de evitar indicadores nulos é fazer acordos e cumprir por eles. A maioria dos NullPointExceptions ocorre porque eles usam informações incompletas ou não recebe todas as dependências para criar objetos. Se você não permitir a criação de objetos incompletos e negar esses requisitos, poderá impedir muitos nullpointExceptions que ocorrem após um tempo. Se o objeto puder ser criado, você deve definir um valor padrão razoável. Por exemplo, um objeto de funcionário não pode ser criado sem os atributos de ID e nome, mas pode ter um número opcional de pghone. Se o funcionário não tiver um número de telefone, retorne um 0 em vez de retornar um valor nulo. Mas esse tipo de processamento deve lidar com a verificação dos valores nulos com muito cuidado, em vez de verificar a contribuição ilegal. Observe também que, ao definir um valor nulo ou não, lembre -se do chamador para tomar a decisão informada. Escolher ou aceitar valores nulos após a falha também é um design importante para o qual você precisa prestar atenção.
7) Se você usar um banco de dados para armazenar seu objeto de domínio (objeto Demain)
Por exemplo: cliente, pedidos, etc., você deve definir algumas restrições aos valores nulos no banco de dados. Como o banco de dados pode exigir dados de várias fontes, ter uma verificação dos valores nulos no banco de dados garantirá a integridade dos dados. Manter as restrições aos valores nulos no banco de dados também permitirão reduzir a verificação nula em Java. Quando você pega um objeto do banco de dados, pode garantir que essas propriedades possam estar vazias e essas propriedades não podem estar vazias, o que minimizará o código para essas verificações vazias.
8) Use o modo de objeto vazio
Essa é outra maneira de evitar o NullPointException em Java. Se um método retornar um objeto, que o chamador deseja iterar sobre o objeto, que o chamador precisará usar alguns métodos semelhantes ao coletor.iterator () para retornar o iterador. Se o chamador não tiver nenhum dos métodos acima, é possível que o objeto vazio seja retornado em vez de nulo. Um objeto vazio é um objeto especial que possui significados diferentes em diferentes contextos. Nos casos em que métodos como esses retornam o tipo de contra -conexão, o objeto vazio (objeto vazio) interno deve ser usado em vez de retornar vazio.