Nulla mutató kivétel a Java-ban: megvalósítás és példák



Ez a cikk rengeteg példával nyújt részletes és átfogó ismereteket arról, hogy a Null Pointer Exception hogyan működik Java-ban.

Kivételek szükségesek a kód gördülékeny futtatása érdekében, és tájékoztassák a programozókat a megoldandó hibáról. Ebben a cikkben a Java Null Pointer Exception-re koncentrálunk a következő sorrendben:

Mi a Null Pointer Exception a Java-ban?





A Java mutató null kivétel futásidejű kivétel. A Java világában egy speciális null értéket rendelünk egy objektum hivatkozáshoz. A Null Pointer Exception akkor kerül bevezetésre, amikor egy program megpróbál objektum hivatkozást használni, amelynek értéke null. Melyik lehet:

java mi a szkenner
  • Bizonyos metódus null objektumról történő meghívására.
  • Egy null objektum mezőjének elérése vagy módosítása.
  • Figyelembe véve a null hosszát, mintha tömb lenne.
  • Null objektum helyeinek elérése vagy módosítása közben.
  • Dobás null, mint egy dobható érték.
  • Null objektumon keresztül próbál szinkronizálni.

Miért van szükségünk a null értékre?



A Null a Java-ban használt egyedi érték. A Null azt mutatja, hogy egy referencia változóhoz nincs hozzárendelve érték. A null elsődleges alkalmazása az adatstruktúrák, például a kapcsolt listák és a fák megvalósításában rejlik. Néhány más alkalmazás tartalmaz null objektum mintákat és szingulett mintákat. Egy szingulett minta meghatározza, hogy egy osztálynak csak egy példánya indítható el, és célja az objektum globális hozzáférési pontjának biztosítása.

Az osztály legalább egy példányának létrehozásának legjobb és legegyszerűbb módja az összes konstruktor privátnak nyilvánítása. Ezután létrehoznak egy nyilvános metódust, amely visszaadja az osztály egyedi példányát.

// A randomUUID függvény használatához. import java.util.UUID import java.io. * class Singleton {// Itt inicializáljuk a single és az ID értékeit. private static Singleton single = null private String ID = null private Singleton () {/ * Legyen privát, hogy megakadályozza a Singleton osztály új példányainak létrehozását. * / // Véletlenszerű azonosító létrehozása = UUID.randomUUID (). ToString ()} public static Singleton getInstance () {if (single == null) single = new Singleton () return single} public String getID () {return this.ID}} // Illesztőprogram-kód public class TestSingleton {public static void main (String [] args) {Singleton s = Singleton.getInstance () System.out.println (s.getID ())}} //

Kimenet:



null-pointer

A fenti példa a szingulett osztály statikus példája. A példány legfeljebb egyszer kerül inicializálásra a Singleton get példányon belül.

mi sorolható a java-ban

Hogyan kerülhető el a Null Pointer kivétel a Java-ban?

Annak elkerülése érdekében, hogy a Null Pointer kivétel ne forduljon elő a Java-ban, a használatuk előtt meg kell győződnünk arról, hogy az összes objektum megfelelően inicializálva van-e. Amikor egy referencia változót deklarálunk, ellenőriznünk kell, hogy egy objektum nem null, és mielőtt metódusokat vagy mezőket kérnénk az objektumoktól. Az alábbiakban bemutatunk néhány problémát a megfelelő megoldásokkal a probléma leküzdésére.

// a metódus // meghívásának nullán történő bemutatására szolgáló program okozza a NullPointerException import java.io. * osztály GFG {public static void main (String [] args) {// String változó inicializálása null értékkel String ptr = null // Annak ellenőrzése, hogy a ptr. értéke null vagy egyenlő-e. próbáld meg {// Ez a kódsor a NullPointerException // fájlt dobja el, mert a ptr értéke null, ha (ptr.equals ('gfg')) System.out.print ('Same') else System.out.print ('Not Same')} catch (NullPointerException e) {System.out.print ('NullPointerException Caught')}}}

Kimenet:

A módszer érveinek ellenőrzése

Mindig emlékezzünk arra, hogy egy új metódus törzsének végrehajtása előtt meg kell győződnünk a nullértékekre vonatkozó argumentumairól, és folytassuk a metódus végrehajtását. Csak akkor, ha az argumentumokat megfelelően ellenőrzik. Egyébként egy „IllegalArgumentException” -t dob, és felhívja a hívási módszert, hogy valami nincs rendben az átadott argumentumokkal.

// program annak ellenőrzésére, hogy a paraméterek nullák-e vagy sem, mielőtt // felhasználnák őket. import java.io. * class GFG {public static void main (String [] args) {// String s egy üres karakterláncot állít be, és a getLength () karakterláncot hívja meg. String s = '' try {System.out.println (getLength (s) )} catch (IllegalArgumentException e) {System.out.println ('IllegalArgumentException catch')}} // String s értékre van állítva és hívja a getLength () s = 'GeeksforGeeks' try {System.out.println (getLength (s) )} catch (IllegalArgumentException e) {System.out.println ('IllegalArgumentException catch')} // s beállítása nullként és a getLength () s = null hívása try {System.out.println (getLength (s))} catch ( IllegalArgumentException e) {System.out.println ('IllegalArgumentException not')}} // Funkció az s karakterlánc hosszának visszaadásához. Dobja az // IllegalArgumentException parancsot, ha s értéke null. public static int getLength (String s) {if (s == null) new IllegalArgumentException ('Az argumentum nem lehet null') return s.length ()}}

Kimenet:

A Ternary Operator használata

A NullPointerException elkerülésére egy háromszintű operátort használnak. A logikai kifejezést ellenőrizzük, és ha a kifejezés akkor igaz, akkor az1 értéket adjuk vissza, ellenkező esetben a2 értéket adjuk vissza. A nullmutatók kezeléséhez használható háromszintű operátor használható: A megfelelő kép a megfelelő kimenet.

ssis bemutató kezdőknek 2012 példákkal
// Java program annak bemutatására, hogy a // ternary operátort használhatjuk a NullPointerException elkerülésére. import java.io. * class GFG {public static void main (String [] args) {// String változó inicializálása null értékkel String str = null String üzenet = (str == null)? '': str.substring (0,5) System.out.println (üzenet) str = 'Edureka_Java_Blog' üzenet = (str == null)? '': str.substring (0,5) System.out.println (üzenet)}}

Kimenet:

Edurek

Ezzel elérkeztünk a Java Null Pointer Exception végéhez. Remélem, van ötlete a Null Pointer Exceptionről.

Nézze meg a az Edureka, egy megbízható online tanulási vállalat, amelynek több mint 250 000 elégedett tanulóval rendelkező hálózata elterjedt az egész világon. Az Edureka Java J2EE és SOA képzési és tanúsítási tanfolyamát olyan hallgatók és szakemberek számára tervezték, akik Java fejlesztők szeretnének lenni. A tanfolyamot úgy tervezték meg, hogy előrelépést nyújtson a Java programozásban, és képezze mind az alapvető, mind a fejlett Java koncepciókhoz, valamint a különböző Java keretrendszerekhez, például a Hibernate & Spring.

Van egy kérdésünk? Kérjük, említse meg a „Null Pointer Exception in Java” blog megjegyzés rovatában, és a lehető leghamarabb kapcsolatba lépünk Önnel.