Explica qué es la seguridad nula en el lenguaje Kotlin.
sobes.tech AI
Respuesta de la IA
Null safety — es una función del lenguaje Kotlin que previene errores relacionados con referencias null. Se logra creando dos tipos de referencias: nullable (que permite null) y non-nullable (que no permite null).
Los tipos non-nullable se declaran como de costumbre:
var nonNullableString: String = "Hello" // No puede ser null
Los tipos nullable se declaran usando el símbolo ? después del nombre del tipo:
var nullableString: String? = "Hello" // Puede ser null
nullableString = null
Kotlin requiere un manejo explícito de los tipos nullable, evitando acceder directamente a sus miembros sin verificar antes si son null. Para ello, proporciona los siguientes mecanismos:
-
Operador de llamada segura (
?.): Invoca un método o accede a una propiedad solo si el objeto no esnull. En caso contrario, devuelvenull.val length = nullableString?.length // length será Int? o null -
Operador Elvis (
?:): Proporciona un valor por defecto si la expresión a la izquierda del operador esnull.val nonNullLength = nullableString?.length ?: 0 // nonNullLength será Int, 0 si nullableString es null -
Operador de afirmación de no-null (
!!): Convierte un tipo nullable en no-nullable. Si el valor esnull, lanza una excepciónNullPointerException. Se usa cuando el desarrollador está seguro de que el valor no esnull.val sureLength = nullableString!!.length // Lanzará NullPointerException si nullableString es null -
Verificaciones con if: Verificación tradicional de
nullusandoif. El compilador realiza un smart cast (conversión inteligente) del tipo nullable a no-nullable dentro del bloqueif, si la verificación pasa.if (nullableString != null) { val length = nullableString.length // Aquí nullableString se trata como String }
Estos mecanismos permiten gestionar explícitamente las situaciones en las que una variable puede ser null, reduciendo significativamente la probabilidad de NullPointerException en tiempo de ejecución.