Null Pointer Exception in Java: Εφαρμογή και παραδείγματα



Αυτό το άρθρο θα σας δώσει μια λεπτομερή και περιεκτική γνώση του τρόπου λειτουργίας του Null Pointer Exception στην Java με πολλά παραδείγματα.

Απαιτούνται εξαιρέσεις για την ομαλή εκτέλεση κώδικα και ενημερώστε τους προγραμματιστές για το λάθος που πρέπει να επιλυθεί. Σε αυτό το άρθρο, θα επικεντρωθούμε στην εξαίρεση Null Pointer στην Java με την ακόλουθη σειρά:

Τι είναι η εξαίρεση Null Pointer στην Java;





Η εξαίρεση μηδενικού δείκτη στην Java είναι εξαίρεση χρόνου εκτέλεσης. Στον κόσμο της Java, μια ειδική τιμή null εκχωρείται σε μια αναφορά αντικειμένου. Η εξαίρεση Null Pointer εισάγεται όταν ένα πρόγραμμα προσπαθεί να χρησιμοποιήσει μια αναφορά αντικειμένου, η οποία έχει την τιμή null. Το οποίο μπορεί να είναι:

  • Επίκληση μιας συγκεκριμένης μεθόδου από ένα μηδενικό αντικείμενο.
  • Για πρόσβαση ή τροποποίηση του πεδίου ενός μηδενικού αντικειμένου.
  • Λαμβάνοντας υπόψη το μήκος του null, σαν να ήταν ένας πίνακας.
  • Κατά την πρόσβαση ή την τροποποίηση των υποδοχών ενός μηδενικού αντικειμένου.
  • Ρίχνει το μηδέν σαν μια ρίξιμη τιμή.
  • Προσπάθεια συγχρονισμού πάνω από ένα μηδενικό αντικείμενο.

Γιατί χρειαζόμαστε την μηδενική τιμή;



Το Null είναι μια μοναδική τιμή που χρησιμοποιείται στην Java. Το Null χρησιμοποιείται για να δείξει ότι δεν έχει αντιστοιχιστεί καμία τιμή σε μια μεταβλητή αναφοράς. Η κύρια εφαρμογή του null έγκειται στην υλοποίηση δομών δεδομένων, όπως συνδεδεμένων λιστών και δέντρων. Ορισμένες άλλες εφαρμογές περιλαμβάνουν μοτίβα μηδενικών αντικειμένων και μοτίβα singleton. Ένα μοτίβο singleton καθορίζει ότι μόνο μία παρουσία μιας κλάσης μπορεί να ξεκινήσει και στοχεύει στην παροχή ενός παγκόσμιου σημείου πρόσβασης στο αντικείμενο.

Ο καλύτερος και απλός τρόπος για να δημιουργήσετε τουλάχιστον μία παρουσία μιας κλάσης είναι να δηλώσετε όλους τους κατασκευαστές ως ιδιωτικούς. Στη συνέχεια, δημιουργούν μια δημόσια μέθοδο που επιστρέφει τη μοναδική παρουσία της τάξης.

// Για να χρησιμοποιήσετε τη λειτουργία randomUUID. import java.util.UUID import java.io. * class Singleton {// Εδώ αρχικοποιούμε τις τιμές του single και του ID σε null. ιδιωτικό στατικό Singleton single = null private String ID = null private Singleton () {/ * Κάντε το ιδιωτικό, προκειμένου να αποφευχθεί η δημιουργία νέων παρουσιών της τάξης Singleton. * / // Δημιουργία τυχαίου αναγνωριστικού ID = UUID.randomUUID (). ToString ()} δημόσιο στατικό Singleton getInstance () {if (single == null) single = new Singleton () return single} public String getID () {return this.ID}} // Κωδικός προγράμματος οδήγησης δημόσιας τάξης TestSingleton {public static void main (String [] args) {Singleton s = Singleton.getInstance () System.out.println (s.getID ())}} //

Παραγωγή:



null-pointer

εφαρμογή κατακερματισμού στο παράδειγμα java

Το παραπάνω παράδειγμα είναι μια στατική παρουσία της τάξης singleton. Η παρουσία αρχικοποιείται το πολύ μία φορά στη μέθοδο Singleton get Instance.

πώς να δημιουργήσετε μια σειρά αντικειμένων

Πώς να αποφύγετε την εξαίρεση Null Pointer στην Java;

Προκειμένου να αποφευχθεί η εξαίρεση Null Pointer στην Java, πρέπει να βεβαιωθούμε ότι όλα τα αντικείμενα έχουν προετοιμαστεί σωστά πριν τα χρησιμοποιήσετε. Όταν δηλώνεται μια μεταβλητή αναφοράς, πρέπει να επαληθεύσουμε ότι ένα αντικείμενο δεν είναι μηδενικό και επίσης Πριν ζητήσουμε μεθόδους ή πεδία από αντικείμενα. Τα παρακάτω είναι μερικά προβλήματα με τις αντίστοιχες λύσεις για να ξεπεραστεί αυτό το πρόβλημα.

// πρόγραμμα για την απόδειξη της επίκλησης μιας μεθόδου // στο null προκαλεί το NullPointerException import java.io. * class GFG {public static void main (String [] args) {// Έναρξη μεταβλητής συμβολοσειράς με τιμή null String ptr = null // Έλεγχος αν το ptr.equals είναι null ή λειτουργεί καλά. δοκιμάστε {// Αυτή η γραμμή κώδικα ρίχνει το NullPointerException // επειδή το ptr είναι null εάν (ptr.equals ('gfg')) System.out.print ('Same') other System.out.print ('Not Same')} catch (NullPointerException e) {System.out.print ('NullPointerException Caught')}}}}

Παραγωγή:

Διατηρώντας τον έλεγχο των επιχειρημάτων μιας μεθόδου

Να θυμάστε πάντα ότι πριν εκτελέσετε το σώμα μιας νέας μεθόδου, πρέπει να διασφαλίσουμε τα επιχειρήματά του για μηδενικές τιμές και να συνεχίσουμε με την εκτέλεση της μεθόδου. Εάν και μόνο όταν τα επιχειρήματα ελέγχονται σωστά. Διαφορετικά, θα ρίξει ένα 'IllegalArgumentException' και θα καλέσει τη μέθοδο κλήσης ότι κάτι δεν πάει καλά με τα ορίσματα που έχουν περάσει.

// πρόγραμμα για να ελέγξετε εάν οι παράμετροι είναι μηδενικές ή όχι πριν από τη // χρήση τους. import java.io. * class GFG {public static void main (String [] args) {// String s ορίστε μια κενή συμβολοσειρά και καλέστε getLength () String s = 'δοκιμάστε {System.out.println (getLength (s) )} catch (IllegalArgumentException e) {System.out.println ('IllegalArgumentException catch')} // Η συμβολοσειρά έχει οριστεί σε μια τιμή και καλεί getLength () s = 'GeeksforGeeks' δοκιμάστε {System.out.println (getLength (s) )} catch (IllegalArgumentException e) {System.out.println ('IllegalArgumentException catch')} // Ρύθμιση s ως null και κλήση getLength () s = null δοκιμάστε {System.out.println (getLength (s))} catch ( IllegalArgumentException e) {System.out.println ('IllegalArgumentException catch')}} // Λειτουργία για την επιστροφή του μήκους της συμβολοσειράς s. Ρίχνει // IllegalArgumentException εάν το s είναι μηδενικό. public static int getLength (String s) {if (s == null) ρίξτε νέο IllegalArgumentException ('Το επιχείρημα δεν μπορεί να είναι null') return s.length ()}}

Παραγωγή:

Χρήση Ternary Operator

Ένας τριαδικός χειριστής χρησιμοποιείται για την αποφυγή του NullPointerException. Η έκφραση Boolean ελέγχεται και εάν η έκφραση είναι αληθής τότε, η τιμή1 επιστρέφεται, διαφορετικά η τιμή2 επιστρέφεται. Μπορεί να χρησιμοποιηθεί ο τριαδικός χειριστής για το χειρισμό μηδενικών δεικτών: Η σωστή εικόνα είναι η αντίστοιχη έξοδος.

// Ένα πρόγραμμα Java για να δείξουμε ότι μπορούμε να χρησιμοποιήσουμε τον / την τριμερή τελεστή για να αποφύγουμε το NullPointerException. import java.io. * class GFG {public static void main (String [] args) {// Αρχικοποίηση μεταβλητής συμβολοσειράς με μηδενική τιμή String str = null String message = (str == null); '': str.substring (0,5) System.out.println (μήνυμα) str = 'Edureka_Java_Blog' message = (str == null); '': str.substring (0,5) System.out.println (μήνυμα)}}

Παραγωγή:

Έντρεικ

Με αυτό, φτάνουμε στο τέλος της εξαίρεσης Null Pointer στην Java. Ελπίζω να έχετε μια ιδέα της εξαίρεσης Null Pointer.

Δείτε το από την Edureka, μια αξιόπιστη διαδικτυακή εταιρεία εκμάθησης με δίκτυο περισσότερων από 250.000 ικανοποιημένων μαθητών σε όλο τον κόσμο. Το μάθημα εκπαίδευσης και πιστοποίησης Java J2EE και SOA της Edureka έχει σχεδιαστεί για φοιτητές και επαγγελματίες που θέλουν να γίνουν προγραμματιστές Java. Το μάθημα έχει σχεδιαστεί για να σας δώσει μια πρώτη αρχή στον προγραμματισμό Java και να σας εκπαιδεύσει τόσο για τις βασικές όσο και για τις προηγμένες ιδέες Java μαζί με διάφορα πλαίσια Java όπως το Hibernate & Spring.

συγχώνευση ταξινόμησης ψευδοκώδικα c ++

Έχετε μια ερώτηση για εμάς; Παρακαλώ αναφέρετέ το στην ενότητα σχολίων αυτού του blog 'Null Pointer Exception in Java' και θα επικοινωνήσουμε μαζί σας το συντομότερο δυνατό.