¿Qué sucede si accede a un campo nullable de un objeto en Kotlin?
sobes.tech AI
Respuesta de la IA
Si se accede a un campo nullable de un objeto sin verificar si es null, se producirá una excepción NullPointerException (NPE).
Para acceder de manera segura, se pueden usar los siguientes enfoques:
-
Operador de llamada segura (
?.): Devuelvenullsi el objeto esnull, de lo contrario realiza la llamada.// Supongamos que user? es un User? val userName: String? = user?.name -
Operador de afirmación de no-null (
!!): Confirma explícitamente que el objeto no esnull. Si esnull, lanzaNullPointerException.// Usar conscientemente, puede llevar a NPE val userName: String = user!!.name -
Operador Elvis (
?:): Proporciona un valor predeterminado si el objeto a la izquierda del operador?:esnull.val userName: String = user?.name ?: "Usuario desconocido" -
Bloques
ifowhen: Verificación explícita denull.if (user != null) { val userName = user.name } else { // Manejar el caso en que user es null } -
Funciones
let,run,apply,withcon llamada segura:user?.let { // `it` dentro de este bloque es un `User` no nulo val userName = it.name }
La elección del enfoque depende de la lógica del programa y del comportamiento deseado en caso de que el objeto sea null. Generalmente, se recomienda usar el operador de llamada segura (?.) o el operador Elvis (?:) para evitar NPE. El operador !! debe usarse con precaución.