Exceção de ponteiro nulo em Java: implementação e exemplos



Este artigo fornecerá a você um conhecimento detalhado e abrangente de como a Null Pointer Exception funciona em Java com muitos exemplos.

Exceções são necessárias para o bom funcionamento do código e permitem que os programadores saibam o erro a ser resolvido. Neste artigo, vamos nos concentrar na exceção de ponteiro nulo em Java na seguinte ordem:

O que é exceção de ponteiro nulo em Java?





A exceção de ponteiro nulo em Java é uma exceção de tempo de execução. No mundo do Java, um valor nulo especial é atribuído a uma referência de objeto. A exceção de ponteiro nulo é introduzida quando um programa tenta usar uma referência de objeto, que tem o valor nulo. Que pode ser:

valores de array de impressão php apenas
  • Para invocar um determinado método a partir de um objeto nulo.
  • Para acessar ou modificar o campo de um objeto nulo.
  • Considerando o comprimento de null, como se fosse um array.
  • Ao acessar ou modificar os slots de um objeto nulo.
  • Jogando null como um valor lançável.
  • Tentando sincronizar em um objeto nulo.

Por que precisamos do valor nulo?



Nulo é um valor exclusivo usado em Java. Nulo é usado para mostrar que nenhum valor é atribuído a uma variável de referência. A principal aplicação de null reside na implementação de estruturas de dados como listas e árvores vinculadas. Alguns outros aplicativos incluem padrões de objetos nulos e padrões singleton. Um padrão singleton especifica que apenas uma instância de uma classe pode ser iniciada e visa fornecer um ponto global de acesso ao objeto.

A melhor e simples maneira de criar pelo menos uma instância de uma classe é declarar todos os construtores como privados. Em seguida, eles criam um método público que retorna a instância única da classe.

// Para usar a função randomUUID. import java.util.UUID import java.io. * class Singleton {// Aqui inicializamos os valores de single e ID para nulo. private static Singleton single = null private String ID = null private Singleton () {/ * Torne-o privado, para evitar a criação de novas instâncias da classe Singleton. * / // Cria um ID aleatório ID = UUID.randomUUID (). ToString ()} public static Singleton getInstance () {if (single == null) single = new Singleton () return single} public String getID () {return this.ID}} // Código do driver public class TestSingleton {public static void main (String [] args) {Singleton s = Singleton.getInstance () System.out.println (s.getID ())}} //

Resultado:



null-pointer

O exemplo acima é uma instância estática da classe singleton. A instância é inicializada no máximo uma vez dentro do método Singleton get Instance.

o que é serializável em java

Como evitar a exceção de ponteiro nulo em Java?

Para evitar a exceção de ponteiro nulo em Java, devemos ter certeza de que todos os objetos foram inicializados corretamente antes de usá-los. Quando uma variável de referência é declarada, devemos verificar se um objeto não é nulo e também Antes de solicitarmos métodos ou campos dos objetos. A seguir estão alguns problemas com suas soluções correspondentes para superar esse problema.

// programa para demonstrar a invocação de um método // em nulo causa NullPointerException import java.io. * class GFG {public static void main (String [] args) {// Inicializando a variável String com valor nulo String ptr = null // Verificando se ptr.equals é nulo ou funciona bem. try {// Esta linha de código lança NullPointerException // porque ptr é nulo if (ptr.equals ('gfg')) System.out.print ('Same') else System.out.print ('Not Same')} catch (NullPointerException e) {System.out.print ('NullPointerException Caught')}}}

Resultado:

Manter a verificação dos argumentos de um método

Lembre-se sempre que antes de executar o corpo de um novo método, devemos garantir seus argumentos para valores nulos e continuar com a execução do método. Se e somente quando os argumentos são verificados corretamente. Caso contrário, ele lançará uma “IllegalArgumentException” e chamará o método de chamada de que algo está errado com os argumentos passados.

// programa para verificar se os parâmetros são nulos ou não antes // de usá-los. import java.io. * class GFG {public static void main (String [] args) {// String s define uma string vazia e chama getLength () String s = '' try {System.out.println (getLength (s) )} catch (IllegalArgumentException e) {System.out.println ('IllegalArgumentException catch')} // String s definida como um valor e chamando getLength () s = 'GeeksforGeeks' try {System.out.println (getLength (s) )} catch (IllegalArgumentException e) {System.out.println ('IllegalArgumentException capturado')} // Definindo s como nulo e chamando getLength () s = null try {System.out.println (getLength (s))} catch ( IllegalArgumentException e) {System.out.println ('IllegalArgumentException capturado')}} // Função para retornar o comprimento da string s. Ele lança // IllegalArgumentException se s for nulo. public static int getLength (String s) {if (s == null) lance new IllegalArgumentException ('O argumento não pode ser nulo') return s.length ()}}

Resultado:

tipo de dados data t sql

Uso de Operador Ternário

Um operador ternário é usado para evitar NullPointerException. A expressão booleana é verificada e se a expressão for verdadeira, o valor1 é retornado, caso contrário, o valor2 é retornado. O operador ternário para lidar com ponteiros nulos pode ser usado: A imagem certa é a saída correspondente.

// Um ​​programa Java para demonstrar que podemos usar // operador ternário para evitar NullPointerException. import java.io. * class GFG {public static void main (String [] args) {// Inicializando a variável String com valor nulo String str = null String mensagem = (str == null)? '': str.substring (0,5) System.out.println (mensagem) str = 'Edureka_Java_Blog' mensagem = (str == null)? '': str.substring (0,5) System.out.println (mensagem)}}

Resultado:

Edurek

Com isso, chegamos ao fim da Null Pointer Exception em Java. Espero que você tenha uma ideia do Null Pointer Exception.

Confira o pela Edureka, uma empresa de aprendizagem online confiável com uma rede de mais de 250.000 alunos satisfeitos espalhados por todo o mundo. O curso de certificação e treinamento Java J2EE e SOA da Edureka é projetado para estudantes e profissionais que desejam ser um desenvolvedor Java. O curso foi elaborado para dar a você uma vantagem inicial na programação Java e treiná-lo para os conceitos básicos e avançados de Java, juntamente com várias estruturas Java como Hibernate e Spring.

Tem alguma questão para nós? Mencione isso na seção de comentários deste blog “Null Pointer Exception in Java” e entraremos em contato com você o mais breve possível.