Как трябва да проверявате стойностите на null в кода?
sobes.tech AI
Отговор от AI
В Kotlin се използват следните подходи за работа с nullable типове и проверка за null:
-
Оператор за безопасно извикване (
?.): Позволява да се извикат методи или да се достъпят свойства на обект само ако обектът не еnull. Ако обектът еnull, цялото извикване връщаnull. -
Оператор Елвис (
?:): Позволява да се предостави стойност по подразбиране, ако изразът отляво на оператора еnull. -
Оператор за небезопасно извикване (
!!): Преобразува nullable тип в non-nullable. Ако стойността еnull, ще бъде генерирано изключениеNullPointerException. Използването е силно неподходящо, тъй като може да доведе до срив на приложението. -
Блок
ifс проверка заnull: Традиционен начин за проверка, често използван в съчетание с умни кастове в Kotlin.
// Оператор за безопасно извикване ?.
val length = text?.length
// Умно кастване след проверка за null
if (text != null) {
val length = text.length // text автоматично се преобразува в String (non-nullable)
}
// Оператор Елвис ?:
val nonNullText = text ?: "Стандартен текст"
// Оператор за небезопасно извикване !! (избягвайте ако е възможно)
val forceLength = text!!.length // Може да хвърли NullPointerException
В Java проверката за null се извършва изключително с условни оператори if:
// Java
if (text != null) {
int length = text.length();
} else {
// Обработка на случая, когато text е null
}