Eccezione puntatore nullo in Java: implementazione ed esempi



Questo articolo ti fornirà una conoscenza dettagliata e completa di come funziona l'eccezione Null Pointer in Java con un sacco di esempi.

Sono necessarie eccezioni per il buon funzionamento del codice e per consentire ai programmatori di conoscere l'errore da risolvere. In questo articolo, ci concentreremo sull'eccezione del puntatore nullo in Java nel seguente ordine:

Che cos'è l'eccezione del puntatore nullo in Java?





L'eccezione del puntatore nullo in Java è un'eccezione di runtime. Nel mondo di Java, un valore nullo speciale viene assegnato a un riferimento a un oggetto. L'eccezione puntatore nullo viene introdotta quando un programma tenta di utilizzare un riferimento a un oggetto, che ha il valore nullo. Quale può essere:

argomenti della riga di comando nel codice di esempio java
  • Per invocare un determinato metodo da un oggetto nullo.
  • Per accedere o modificare il campo di un oggetto nullo.
  • Considerando la lunghezza di null, come se fosse un array.
  • Durante l'accesso o la modifica degli slot di un oggetto nullo.
  • Lanciare null come un valore lanciabile.
  • Tentativo di sincronizzazione su un oggetto nullo.

Perché abbiamo bisogno del valore nullo?



Null è un valore univoco utilizzato in Java. Null viene utilizzato per mostrare che nessun valore è assegnato a una variabile di riferimento. L'applicazione principale di null risiede nell'implementazione di strutture di dati come elenchi collegati e alberi. Alcune altre applicazioni includono modelli di oggetti nulli e modelli singleton. Un pattern singleton specifica che può essere avviata solo un'istanza di una classe e mira a fornire un punto di accesso globale all'oggetto.

Il modo migliore e semplice per creare almeno un'istanza di una classe è dichiarare tutti i costruttori come privati. Quindi creano un metodo pubblico che restituisce l'istanza univoca della classe.

// Per utilizzare la funzione randomUUID. import java.util.UUID import java.io. * class Singleton {// Qui inizializziamo i valori di single e ID su null. private static Singleton single = null private String ID = null private Singleton () {/ * Rendilo privato, al fine di impedire la creazione di nuove istanze della classe Singleton. * / // Crea un ID ID casuale = UUID.randomUUID (). ToString ()} Singleton statico pubblico getInstance () {if (single == null) single = new Singleton () return single} public String getID () {return this.ID}} // Driver Code public class TestSingleton {public static void main (String [] args) {Singleton s = Singleton.getInstance () System.out.println (s.getID ())}} //

Produzione:



null-pointer

L'esempio precedente è un'istanza statica della classe singleton. L'istanza viene inizializzata al massimo una volta all'interno del metodo Get Instance di Singleton.

differenza tra final infine e finalizzare

Come evitare l'eccezione del puntatore nullo in Java?

Per evitare l'eccezione del puntatore nullo in Java, dobbiamo assicurarci che tutti gli oggetti siano inizializzati correttamente prima di utilizzarli. Quando viene dichiarata una variabile di riferimento, dobbiamo verificare che un oggetto non sia nullo e anche prima di richiedere metodi o campi dagli oggetti. Di seguito sono riportati alcuni problemi con le soluzioni corrispondenti per superare tale problema.

// programma per dimostrare l'invocazione di un metodo // su null causa NullPointerException import java.io. * class GFG {public static void main (String [] args) {// Initializing String variable with null value String ptr = null // Verificare se ptr. È uguale a null o funziona correttamente. try {// Questa riga di codice genera NullPointerException // perché ptr è nullo if (ptr.equals ('gfg')) System.out.print ('Same') else System.out.print ('Not Same')} catch (NullPointerException e) {System.out.print ('NullPointerException Caught')}}}

Produzione:

Controllo degli argomenti di un metodo

Ricorda sempre che prima di eseguire il corpo di un nuovo metodo, dovremmo assicurarci i suoi argomenti per i valori nulli e continuare con l'esecuzione del metodo. Se e solo quando gli argomenti sono adeguatamente controllati. Altrimenti, lancerà una 'IllegalArgumentException' e chiamerà il metodo chiamante che qualcosa non va con gli argomenti passati.

// programma per verificare se i parametri sono nulli o meno prima di // usarli. import java.io. * class GFG {public static void main (String [] args) {// String s imposta una stringa vuota e chiama getLength () String s = '' try {System.out.println (getLength (s) )} catch (IllegalArgumentException e) {System.out.println ('IllegalArgumentException catch')} // La stringa è impostata su un valore e chiama getLength () s = 'GeeksforGeeks' try {System.out.println (getLength (s) )} catch (IllegalArgumentException e) {System.out.println ('IllegalArgumentException catch')} // Impostando s come null e chiamando getLength () s = null try {System.out.println (getLength (s))} catch ( IllegalArgumentException e) {System.out.println ('IllegalArgumentException catturato')}} // Funzione per restituire la lunghezza della stringa s. Genera // IllegalArgumentException se s è null. public static int getLength (String s) {if (s == null) throw new IllegalArgumentException ('L'argomento non può essere null') return s.length ()}}

Produzione:

Uso dell'operatore ternario

Un operatore ternario viene utilizzato per evitare NullPointerException. L'espressione booleana viene controllata e, se l'espressione è vera, viene restituito il valore1, altrimenti viene restituito il valore2. È possibile utilizzare l'operatore ternario per la gestione dei puntatori nulli: l'immagine a destra è l'output corrispondente.

nozioni di base su sql server per principianti
// Un programma Java per dimostrare che è possibile utilizzare // l'operatore ternario per evitare NullPointerException. import java.io. * class GFG {public static void main (String [] args) {// Initializing String variable with null value String str = null String message = (str == null)? '': str.substring (0,5) System.out.println (message) str = 'Edureka_Java_Blog' message = (str == null)? '': str.substring (0,5) System.out.println (messaggio)}}

Produzione:

Edurek

Con questo, arriviamo alla fine di Null Pointer Exception in Java. Spero che tu abbia un'idea di Null Pointer Exception.

Controlla il da Edureka, una società di formazione online affidabile con una rete di oltre 250.000 studenti soddisfatti sparsi in tutto il mondo. Il corso di formazione e certificazione Java J2EE e SOA di Edureka è progettato per studenti e professionisti che desiderano diventare sviluppatori Java. Il corso è progettato per darti un vantaggio nella programmazione Java e formarti per concetti Java sia di base che avanzati insieme a vari framework Java come Hibernate e Spring.

Hai domande per noi? Per favore, menzionalo nella sezione commenti di questo blog 'Null Pointer Exception in Java' e ti risponderemo il prima possibile.