Junior
Τι συμβαίνει αν προσεγγίσετε ένα πεδίο ενός αντικειμένου που μπορεί να είναι null;
sobes.tech AI
Απάντηση από AI
NullPointerException (NPE). Συμβαίνει όταν προσπαθείτε να καλέσετε μια μέθοδο ή να προσπελάσετε ένα πεδίο ενός αντικειμένου, η αναφορά του οποίου είναι null.
Παράδειγμα:
data class User(val name: String)
fun printUserName(user: User?) {
// Αν το user == null, θα προκληθεί NullPointerException
println(user.name)
}
Για να αποφύγετε το NPE, μπορείτε να χρησιμοποιήσετε:
- Ελέγχους για null:
fun printUserName(user: User?) { if (user != null) { println(user.name) } else { println("Ο χρήστης είναι null") } } - Τελεστής ασφαλούς κλήσης (
?.):fun printUserName(user: User?) { println(user?.name) // Θα εμφανίσει null αν το user == null, διαφορετικά το όνομα } - Τελεστής Elvis (
?:):fun printUserName(user: User?) { val userName = user?.name ?: "Προεπιλεγμένο όνομα" // Αν το user?.name == null, θα οριστεί "Προεπιλεγμένο όνομα" println(userName) } - Μη-null τύποι (στην Kotlin):
// Αυτή η μέθοδος δέχεται μόνο μη-null αντικείμενο User fun printUserName(user: User) { println(user.name) // Εγγυημένα όχι null }