Πώς πρέπει να ελέγχετε τις τιμές null στον κώδικα;
sobes.tech AI
Απάντηση από AI
Στην Kotlin, χρησιμοποιούνται οι ακόλουθες προσεγγίσεις για την εργασία με τύπους nullable και τον έλεγχο null:
-
Τελεστής ασφαλούς κλήσης (
?.): Επιτρέπει την κλήση μεθόδων ή την πρόσβαση σε ιδιότητες ενός αντικειμένου μόνο αν το αντικείμενο δεν είναιnull. Αν το αντικείμενο είναιnull, ολόκληρη η κλήση επιστρέφειnull. -
Τελεστής Elvis (
?:): Επιτρέπει την παροχή μιας προεπιλεγμένης τιμής αν η έκφραση στα αριστερά του τελεστή είναιnull. -
Τελεστής μη ασφαλούς κλήσης (
!!): Μετατρέπει έναν nullable τύπο σε μη nullable. Αν η τιμή είναιnull, θα προκληθεί εξαίρεσηNullPointerException. Η χρήση συνιστάται ιδιαίτερα να αποφεύγεται, καθώς μπορεί να οδηγήσει σε κατάρρευση της εφαρμογής. -
Μπλοκ
ifμε έλεγχοnull: Παραδοσιακός τρόπος ελέγχου, συχνά χρησιμοποιείται σε συνδυασμό με τα smart casts της Kotlin.
// Τελεστής ασφαλούς κλήσης ?.
val length = text?.length
// Smart cast μετά τον έλεγχο για `null`
if (text != null) {
val length = text.length // το text μετατρέπεται αυτόματα σε String (non-nullable)
}
// Τελεστής Elvis ?:
val nonNullText = text ?: "Προεπιλεγμένο κείμενο"
// Τελεστής μη ασφαλούς κλήσης !! (αποφεύγετε αν είναι δυνατόν)
val forceLength = text!!.length // Μπορεί να ρίξει NullPointerException
Στην Java, ο έλεγχος null γίνεται αποκλειστικά με τις συνθήκες if:
// Java
if (text != null) {
int length = text.length();
} else {
// Διαχείριση περίπτωσης όταν το text είναι null
}