Es imprescindible comprender el código bien previamente a adaptarlo a tu trabajo y si ttienes algo que aportar puedes comentarlo.
Solución:
Este es un tipo anulable inseguro (T?
) conversión a un tipo no anulable (T
),
!!
tirará NullPointerException
si el valor es null
.
Está documentado aquí junto con los medios de Kotlin de null-la seguridad.
Aquí hay un ejemplo para hacer las cosas más claras. Digamos que tienes esta función
fun main(args: Array)
var email: String
email = null
println(email)
Esto producirá el siguiente error de compilación.
Null can not be a value of a non-null type String
Ahora puede evitarlo agregando un signo de interrogación al String
escriba para que sea anulable.
Entonces tenemos
fun main(args: Array)
var email: String?
email = null
println(email)
Esto produce un resultado de
null
Ahora, si queremos que la función arroje una excepción cuando el valor del correo electrónico sea null, podemos agregar dos exclamaciones al final del correo electrónico. Como esto
fun main(args: Array)
var email: String?
email = null
println(email!!)
Esto arrojará un KotlinNullPointerException
Operador de doble explosión es una excelente opción para los fanáticos de NullPointerException
(o NPE para abreviar).
los no-null operador de afirmación
!!
convierte cualquier valor en un no-null escribe y lanza una excepción si el valor es null.
val nonNull = a!!.length
para que puedas escribir a!!
y esto devolverá un no-null valor de a
(a String
aquí por ejemplo) o lanzar una NPE si a
es null.
Si desea un NPE, puede obtenerlo, pero debe solicitarlo explícitamente. Este operador debe usarse en los casos en que el desarrollador está garantizando: el valor nunca será null.