„Null Pointer“ išimtis „Java“: įgyvendinimas ir pavyzdžiai



Šis straipsnis suteiks jums išsamių ir išsamių žinių apie tai, kaip „Null Pointer Exception“ veikia „Java“, su daugybe pavyzdžių.

Sklandžiam kodo veikimui reikalingos išimtys ir informuokite programuotojus apie klaidą, kurią reikia išspręsti. Šiame straipsnyje mes sutelksime dėmesį į „Null Pointer Exception Java“ tokią tvarka:

Kas yra „Null Pointer Exception Java“ išimtis?





„Java“ rodiklio išimtis yra vykdymo laiko išimtis. „Java“ pasaulyje objekto nuorodai priskiriama speciali nulinė vertė. „Null Pointer Exception“ išimtis pateikiama, kai programa bando naudoti objekto nuorodą, kurios vertė yra nulinė. Kuris gali būti:

metodo perkrovos Java privalumai
  • Norėdami iškviesti tam tikrą metodą iš nulinio objekto.
  • Norėdami pasiekti ar modifikuoti nulinio objekto lauką.
  • Atsižvelgiant į nulį, tarsi masyvą.
  • Prieidami prie nulio objekto ar keisdami jo sritis.
  • Mesti nieką kaip išmėtomą vertę.
  • Bandoma sinchronizuoti per nulinį objektą.

Kodėl mums reikia nulinės vertės?



Null yra unikali reikšmė, naudojama „Java“. Nulis naudojamas norint parodyti, kad referenciniam kintamajam nepriskiriama jokia vertė. Pagrindinis „null“ taikymas yra duomenų struktūrų, tokių kaip susieti sąrašai ir medžiai, diegimas. Kai kurios kitos programos apima nulinius objektų modelius ir pavienius modelius. Vienkartinis modelis nurodo, kad galima inicijuoti tik vieną klasės egzempliorių, ir juo siekiama suteikti visuotinį prieigos prie objekto tašką.

Geriausias ir paprastas būdas sukurti bent vieną klasės egzempliorių yra paskelbti visus konstruktorius privačiais. Tada jie sukuria viešą metodą, kuris grąžina unikalų klasės egzempliorių.

// Norėdami naudoti randomUUID funkciją. importuoti java.util.UUID importuoti java.io. * klasę „Singleton“ {// Čia mes inicijuojame „single“ ir „ID“ reikšmes į nulį. privatus statinis „Singleton single“ = niekinis privatus eilutės ID = null privatus „Singleton“ () {/ * Padarykite jį privačiu, kad būtų išvengta naujų „Singleton“ klasės egzempliorių kūrimo. * / // Sukurkite atsitiktinį ID ID = UUID.randomUUID (). ToString ()} public static Singleton getInstance () {if (single == null) single = new Singleton () return single} public String getID () {return this.ID}} // Vairuotojo kodas viešoji klasė TestSingleton {public static void main (String [] argumentai) {Singleton s = Singleton.getInstance () System.out.println (s.getID ())}} //

Išvestis:



null-pointer

Aukščiau pateiktas pavyzdys yra statinis pavienės klasės pavyzdys. Egzempliorius inicijuojamas daugiausiai „Singleton get instance“ metodo viduje.

vaizdinės studijos pamokos pradedantiesiems

Kaip išvengti „Null Pointer“ išimties „Java“?

Kad išvengtume „Null Pointer“ išimties „Java“, prieš juos naudodami turime įsitikinti, kad visi objektai tinkamai inicializuoti. Kai deklaruojamas referencinis kintamasis, turime patikrinti, ar objektas nėra nulis, taip pat Prieš prašydami metodų ar laukų iš objektų. Toliau pateikiamos kelios problemos, susijusios su atitinkamais jos sprendimais, siekiant įveikti šią problemą.

// programa, parodanti metodo iškvietimą // on null sukelia NullPointerException importuoti java.io. * klasę GFG {public static void main (String [] args) {// Initializing String kintamasis su nuline verte String ptr = null // Tikrinama, ar ptr. yra lygus nuliui ar veikia gerai. pabandykite {// Ši kodo eilutė išmeta NullPointerException //, nes ptr yra niekinis, jei (ptr.equals ('gfg')) System.out.print ('Tas pats') kitas System.out.print ('Ne tas pats')} gaudyti (NullPointerException e) {System.out.print ('NullPointerException Caught')}}}

Išvestis:

Metodo argumentų tikrinimas

Visada atminkite, kad prieš vykdydami naujo metodo turinį turėtume užtikrinti jo argumentus dėl nulinių verčių ir tęsti metodo vykdymą. Jei ir tik tada, kai argumentai bus tinkamai patikrinti. Kita vertus, tai sukurs „IllegalArgumentException“ ir iškvies iškvietimo metodą, kad kažkas negerai su perduotais argumentais.

// programa, skirta patikrinti, ar parametrai yra nuliniai, ar ne, prieš juos naudojant. importuoti java.io. * klasę GFG {public static void main (String [] args) {// String s nustato tuščią eilutę ir kviečia getLength () String s = '' try {System.out.println (getLength (s) )} catch (IllegalArgumentException e) {System.out.println ('IllegalArgumentException catch')}} // Eilučių s reikšmė nustatyta ir iškviečiama getLength () s = 'GeeksforGeeks' try {System.out.println (getLength (s) )} catch (IllegalArgumentException e) {System.out.println ('IllegalArgumentException catch')}} // S nustatymas kaip null ir skambinimas getLength () s = null try {System.out.println (getLength (s)))} catch ( „IllegalArgumentException“ e) {System.out.println ('IllegalArgumentException catch')}}} // Funkcija grąžinti eilutės s ilgį. Jis meta // IllegalArgumentException, jei s yra nulis. public static int getLength (String s) {if (s == null) thrown new IllegalArgumentException ('Argumentas negali būti nulinis') return s.length ()}}

Išvestis:

kaip įdiegti php "Windows 10"

„Ternary Operator“ naudojimas

Norint išvengti „NullPointerException“, naudojamas trijų komponentų operatorius. Tikrinama loginė išraiška ir, jei išraiška yra teisinga, grąžinama reikšmė1, priešingu atveju grąžinama reikšmė2. Gali būti naudojamas trinaris operatorius, kuris tvarkys nulinius rodykles: Tinkamas vaizdas yra atitinkama išvestis.

// „Java“ programa, skirta parodyti, kad galime naudoti // trijų komponentų operatorių, kad išvengtume „NullPointerException“. importuoti java.io. * klasę GFG {public static void main (String [] args) {// Inicializuojamas eilutės kintamasis su nuline verte String str = null String message = (str == null)? '': str.substring (0,5) System.out.println (žinutė) str = 'Edureka_Java_Blog' pranešimas = (str == null)? '': str.substring (0,5) System.out.println (žinutė)}}

Išvestis:

Edurekas

Tuo mes baigiame „Java“ Null Pointer Exception išimtį. Tikiuosi, kad supratote „Null Pointer Exception“.

Patikrinkite sukūrė patikima internetinė mokymosi įmonė „Edureka“, turinti daugiau nei 250 000 patenkintų besimokančiųjų tinklą visame pasaulyje. „Edureka“ „Java J2EE“ ir SOA mokymo ir sertifikavimo kursai yra skirti studentams ir specialistams, norintiems būti „Java“ kūrėjais. Kursas sukurtas tam, kad galėtumėte pradėti žvalgytis į „Java“ programavimą ir išmokyti pagrindines ir pažangesnes „Java“ koncepcijas kartu su įvairiomis „Java“ sistemomis, tokiomis kaip „Hibernate & Spring“.

Turite mums klausimą? Prašau tai paminėti šio tinklaraščio „Null Pointer Exception in Java“ komentarų skyriuje ir mes kuo greičiau susisieksime su jumis.