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?
- Dlaczego potrzebujemy wartości zerowej?
- Jak uniknąć wyjątku zerowego wskaźnika?
- Sprawdzanie argumentów metody
- Korzystanie z operatora trójargumentowego
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:
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.