Wyjątek zerowego wskaźnika w Javie: implementacja i przykłady



W tym artykule znajdziesz szczegółową i wszechstronną wiedzę na temat działania wyjątku zerowego wskaźnika w Javie z mnóstwem przykładów.

Wyjątki są potrzebne do płynnego działania kodu i informowania programistów o błędzie do rozwiązania. W tym artykule skupimy się na wyjątku wskaźnika zerowego w Javie w następującej kolejności:

Co to jest wyjątek zerowego wskaźnika w Javie?





Wyjątek wskaźnika zerowego w Javie jest wyjątkiem w czasie wykonywania. W świecie Javy do odwołania do obiektu przypisywana jest specjalna wartość zerowa. Wyjątek wskaźnika zerowego jest wprowadzany, gdy program próbuje użyć odwołania do obiektu, które ma wartość null. Który może być:

co to jest aplikacja w Salesforce
  • Aby wywołać określoną metodę z obiektu zerowego.
  • Aby uzyskać dostęp lub zmodyfikować pole obiektu zerowego.
  • Biorąc pod uwagę długość null, tak jakby to była tablica.
  • Podczas uzyskiwania dostępu lub modyfikowania gniazd obiektu zerowego.
  • Rzucanie null jak wartość do rzucania.
  • Próbuje zsynchronizować obiekt zerowy.

Dlaczego potrzebujemy wartości zerowej?



Null to unikatowa wartość używana w Javie. Null służy do pokazania, że ​​żadna wartość nie jest przypisana do zmiennej odniesienia. Podstawowym zastosowaniem null jest implementacja struktur danych, takich jak połączone listy i drzewa. Niektóre inne aplikacje zawierają wzorce obiektów zerowych i wzorce pojedynczych. Wzorzec singleton określa, że ​​tylko jedno wystąpienie klasy może zostać zainicjowane i ma na celu zapewnienie globalnego punktu dostępu do obiektu.

Najlepszym i prostym sposobem na utworzenie przynajmniej jednej instancji klasy jest zadeklarowanie wszystkich konstruktorów jako prywatnych. Następnie tworzą metodę publiczną, która zwraca unikalne wystąpienie klasy.

// Aby użyć funkcji randomUUID. import java.util.UUID import java.io. * class Singleton {// Tutaj inicjalizujemy wartości single i ID na null. private static Singleton single = null private String ID = null private Singleton () {/ * Ustaw je jako prywatne, aby zapobiec tworzeniu nowych instancji klasy Singleton. * / // Utwórz losowy identyfikator ID = UUID.randomUUID (). ToString ()} public static Singleton getInstance () {if (single == null) single = new Singleton () return single} public String getID () {return this.ID}} // Publiczna klasa sterownika TestSingleton {public static void main (String [] args) {Singleton s = Singleton.getInstance () System.out.println (s.getID ())}} //

Wynik:



null-pointer

Powyższy przykład jest statyczną instancją klasy singleton. Instancja jest inicjowana najwyżej raz w metodzie Singleton get Instance.

co jest awt w java

Jak uniknąć wyjątku zerowego wskaźnika w Javie?

Aby uniknąć wyjątku wskaźnika zerowego w Javie, musimy upewnić się, że wszystkie obiekty zostały poprawnie zainicjowane przed ich użyciem. Kiedy zadeklarowana jest zmienna referencyjna, musimy sprawdzić, czy obiekt nie jest pusty, a także zanim zażądamy metod lub pól z obiektów. Poniżej przedstawiono niektóre problemy z odpowiadającymi im rozwiązaniami w celu rozwiązania tego problemu.

// program do zademonstrowania wywołania metody // na null powoduje NullPointerException import java.io. * class GFG {public static void main (String [] args) {// Inicjalizacja zmiennej typu String z wartością null String ptr = null // Sprawdzanie, czy ptr.equals null lub działa dobrze. try {// Ten wiersz kodu generuje wyjątek NullPointerException //, ponieważ ptr ma wartość null if (ptr.equals ('gfg')) System.out.print ('Same') else System.out.print ('Not Same')} catch (NullPointerException e) {System.out.print ('NullPointerException Caught')}}}

Wynik:

Sprawdzanie argumentów metody

Zawsze pamiętaj, że przed wykonaniem treści nowej metody powinniśmy zapewnić jej argumenty dla wartości null i kontynuować wykonywanie metody. Tylko wtedy, gdy argumenty są poprawnie sprawdzone. W przeciwnym razie zgłosi „IllegalArgumentException” i wywoła metodę wywołującą, że coś jest nie tak z przekazanymi argumentami.

// program do sprawdzenia, czy parametry są zerowe, czy nie, przed // ich użyciem. import java.io. * class GFG {public static void main (String [] args) {// String s ustawia pusty ciąg i wywołuje metodę getLength () String s = '' try {System.out.println (getLength (s) )} catch (IllegalArgumentException e) {System.out.println ('IllegalArgumentException catch')} // String s ustawione na wartość i wywołujące getLength () s = 'GeeksforGeeks' try {System.out.println (getLength (s) )} catch (IllegalArgumentException e) {System.out.println ('IllegalArgumentException catch')} // Ustawienie s jako null i wywołanie metody getLength () s = null try {System.out.println (getLength (s))} catch ( IllegalArgumentException e) {System.out.println ('IllegalArgumentException catch')}} // Funkcja zwracająca długość łańcucha s. Rzuca // IllegalArgumentException, jeśli s jest null. public static int getLength (String s) {if (s == null) throw new IllegalArgumentException ('Argument nie może mieć wartości null') return s.length ()}}

Wynik:

Wykres pierścieniowy a wykres kołowy

Korzystanie z operatora trójargumentowego

Operator trójargumentowy służy do unikania wyjątku NullPointerException. Wyrażenie logiczne jest sprawdzane i jeśli wyrażenie jest prawdziwe, zwracana jest wartość1, w przeciwnym razie zwracana jest wartość2. Można użyć operatora trójskładnikowego do obsługi wskaźników zerowych: Odpowiedni obraz jest odpowiednim wyjściem.

// Program w języku Java, aby zademonstrować, że możemy użyć operatora // potrójnego, aby uniknąć wyjątku NullPointerException. import java.io. * class GFG {public static void main (String [] args) {// Inicjowanie zmiennej String z wartością null String str = null String message = (str == null)? '': str.substring (0,5) System.out.println (wiadomość) str = 'Edureka_Java_Blog' message = (str == null)? '': str.substring (0,5) System.out.println (wiadomość)}}

Wynik:

Edurek

W ten sposób dochodzimy do końca wyjątku zerowego wskaźnika w Javie. Mam nadzieję, że masz pomysł na wyjątek zerowego wskaźnika.

Sprawdź autorstwa Edureka, zaufanej firmy zajmującej się edukacją online, z siecią ponad 250 000 zadowolonych uczniów rozsianych po całym świecie. Szkolenie i certyfikacja J2EE i SOA firmy Edureka jest przeznaczony dla studentów i profesjonalistów, którzy chcą zostać programistami Java. Kurs ma na celu zapewnienie przewagi w programowaniu w języku Java i przeszkolenie zarówno podstawowych, jak i zaawansowanych koncepcji języka Java, a także różnych struktur Java, takich jak Hibernate i Spring.

Masz do nas pytanie? Wspomnij o tym w sekcji komentarzy na blogu „Wyjątek zerowego wskaźnika w Javie”, a my skontaktujemy się z Tobą tak szybko, jak to możliwe.