Výnimka nulového ukazovateľa v Jave: Implementácia a príklady



Tento článok vám poskytne podrobné a komplexné vedomosti o tom, ako Null Pointer Exception funguje v Jave, s množstvom príkladov.

Pre hladký priebeh kódu sú potrebné výnimky, vďaka ktorým budú programátori vedieť, ktorú chybu treba vyriešiť. V tomto článku sa zameriame na Null Pointer Exception v Jave v nasledujúcom poradí:

Čo je výnimka Null Pointer v Jave?





Výnimka nulového ukazovateľa v Jave je výnimka za behu. Vo svete Javy je odkazu na objekt priradená špeciálna nulová hodnota. Výnimka nulového ukazovateľa sa zavádza, keď sa program pokúsi použiť odkaz na objekt, ktorý má nulovú hodnotu. Čo môže byť:

preniesť súbory na inštanciu ec2 linux
  • Na vyvolanie určitej metódy z prázdneho objektu.
  • Prístup k poľu nulového objektu alebo jeho úprava.
  • Uvažovaním o dĺžke null, akoby to bolo pole.
  • Pri sprístupňovaní alebo úprave slotov prázdneho objektu.
  • Hádzanie null ako hodná hodnota.
  • Pokúšam sa synchronizovať cez nulový objekt.

Prečo potrebujeme nulovú hodnotu?



Null je jedinečná hodnota používaná v prostredí Java. Null slúži na preukázanie, že referenčnej premennej nie je priradená žiadna hodnota. Primárna aplikácia null spočíva v implementácii dátových štruktúr, ako sú prepojené zoznamy a stromy. Niektoré ďalšie aplikácie zahŕňajú vzory nulových objektov a vzory singleton. Vzor singleton určuje, že je možné iniciovať iba jednu inštanciu triedy, a jeho cieľom je poskytnúť globálny bod prístupu k objektu.

Najlepší a najjednoduchší spôsob, ako vytvoriť aspoň jednu inštanciu triedy, je vyhlásiť všetkých konštruktorov za súkromné. Potom vytvoria verejnú metódu, ktorá vráti jedinečnú inštanciu triedy.

// Použiť funkciu randomUUID. import java.util.UUID import java.io. * class Singleton {// Tu inicializujeme hodnoty single a ID na null. private static Singleton single = null private String ID = null private Singleton () {/ * Nastaviť ako súkromné, aby sa zabránilo vytváraniu nových inštancií triedy Singleton. * / // Vytvorenie náhodného ID ID = UUID.randomUUID (). ToString ()} public static Singleton getInstance () {if (single == null) single = new Singleton () return single} public String getID () {return this.ID}} // Verejný kód ovládača TestSingleton {public static void main (String [] args) {Singleton s = Singleton.getInstance () System.out.println (s.getID ())}} //

Výkon:



null-pointer

Vyššie uvedený príklad je statickou inštanciou triedy singleton. Inštancia sa inicializuje maximálne raz v metóde Instance Singleton get.

návody pre Visual Studio pre začiatočníkov

Ako sa vyhnúť výnimke Null Pointer v Jave?

Aby sme sa vyhli výnimke Null Pointer v Jave, musíme sa ubezpečiť, že všetky objekty sú pred ich použitím správne inicializované. Keď je deklarovaná referenčná premenná, musíme overiť, či objekt nemá hodnotu null a tiež predtým, ako od objektov požadujeme metódy alebo polia. Nasleduje niekoľko problémov s ich príslušnými riešeniami na prekonanie tohto problému.

// program na demonštráciu vyvolania metódy // na null spôsobí NullPointerException import java.io. * trieda GFG {public static void main (String [] args) {// Inicializácia reťazcovej premennej s nulovou hodnotou String ptr = null // Kontrola, či je ptr.equals null alebo či funguje dobre. skúste {// Tento riadok kódu vyvolá NullPointerException //, pretože ptr má hodnotu null if (ptr.equals ('gfg')) System.out.print ('Same') else System.out.print ('Not Same')}} catch (NullPointerException e) {System.out.print ('NullPointerException Caught')}}}

Výkon:

Vedenie kontroly argumentov metódy

Vždy pamätajte na to, že pred vykonaním tela novej metódy by sme mali zabezpečiť jej argumenty pre nulové hodnoty a pokračovať v vykonávaní metódy. Iba vtedy, keď sú argumenty správne skontrolované. Inak vyhodí „IllegalArgumentException“ a vyvolá volajúcu metódu, že s odovzdanými argumentmi nie je niečo v poriadku.

// program na kontrolu, či sú parametre nulové alebo nie, pred // ich použitím. import java.io. * trieda GFG {public static void main (String [] args) {// String s nastaví prázdny reťazec a zavolá getLength () String s = '' try {System.out.println (getLength (s) )} catch (IllegalArgumentException e) {System.out.println ('IllegalArgumentException chyten')} // Reťazce sú nastavené na hodnotu a volajú getLength () s = 'GeeksforGeeks' try {System.out.println (getLength (s) )} catch (IllegalArgumentException e) {System.out.println ('IllegalArgumentException chytený')} // Nastavenie s ako null a volanie getLength () s = null vyskúšajte {System.out.println (getLength (s))} catch ( IllegalArgumentException e) {System.out.println ('IllegalArgumentException chytený')}}} // Funkcia na vrátenie dĺžky reťazca s. Ak s má hodnotu null, hodí // IllegalArgumentException. public static int getLength (String s) {if (s == null) throw new IllegalArgumentException ('The argument cannot be null') return s.length ()}}

Výkon:

Využitie ternárneho operátora

Aby sa zabránilo NullPointerException, používa sa ternárny operátor. Boolovský výraz je skontrolovaný a ak je výraz pravdivý, vráti sa hodnota1, v opačnom prípade sa vráti hodnota2. Môže sa použiť ternárny operátor na prácu s nulovými ukazovateľmi: Pravý obrázok je zodpovedajúci výstup.

split funkcia v java príklade
// Program Java, ktorý demonštruje, že môžeme použiť // ternárny operátor, aby sme sa vyhli NullPointerException. import java.io. * trieda GFG {public static void main (String [] args) {// Inicializácia reťazcovej premennej s nulovou hodnotou String str = null String message = (str == null)? ': str.substring (0,5) System.out.println (správa) str =' správa Edureka_Java_Blog '= (str == null)? ': str.substring (0,5) System.out.println (správa)}}

Výkon:

Edurek

Týmto sa dostávame na koniec výnimky Null Pointer Exception v Jave. Dúfam, že ste dostali predstavu o výnimke Null Pointer Exception.

Pozrite sa na autor: Edureka, dôveryhodná online vzdelávacia spoločnosť so sieťou viac ako 250 000 spokojných študentov rozmiestnených po celom svete. Výcvikový a certifikačný kurz Edureka Java J2EE a SOA je určený pre študentov a profesionálov, ktorí chcú byť vývojármi Java. Kurz je navrhnutý tak, aby vám dal náskok v programovaní v Jave a naučil vás základné aj pokročilé koncepty Javy spolu s rôznymi rámcami Java, ako je Hibernate & Spring.

Máte na nás otázku? Uveďte to, prosím, v sekcii komentárov v tomto blogu „Null Pointer Exception in Java“ a my sa vám ozveme čo najskôr.