Sobes.tech
Junior

Πώς πρέπει να ελέγχετε τις τιμές null στον κώδικα;

sobes.tech AI

Απάντηση από AI

Στην Kotlin, χρησιμοποιούνται οι ακόλουθες προσεγγίσεις για την εργασία με τύπους nullable και τον έλεγχο null:

  1. Τελεστής ασφαλούς κλήσης (?.): Επιτρέπει την κλήση μεθόδων ή την πρόσβαση σε ιδιότητες ενός αντικειμένου μόνο αν το αντικείμενο δεν είναι null. Αν το αντικείμενο είναι null, ολόκληρη η κλήση επιστρέφει null.

  2. Τελεστής Elvis (?:): Επιτρέπει την παροχή μιας προεπιλεγμένης τιμής αν η έκφραση στα αριστερά του τελεστή είναι null.

  3. Τελεστής μη ασφαλούς κλήσης (!!): Μετατρέπει έναν nullable τύπο σε μη nullable. Αν η τιμή είναι null, θα προκληθεί εξαίρεση NullPointerException. Η χρήση συνιστάται ιδιαίτερα να αποφεύγεται, καθώς μπορεί να οδηγήσει σε κατάρρευση της εφαρμογής.

  4. Μπλοκ 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
}