Si encuentras algún error con tu código o proyecto, recuerda probar siempre en un entorno de testing antes subir el código al proyecto final.
Solución:
Se llaman tipos de plataforma y significan que Kotlin no sabe si ese valor puede o no ser null
y depende de usted decidir si es anulable o no.
En pocas palabras, el problema es que cualquier referencia proveniente de Java puede ser nully Kotlin, siendo null-seguro por diseño, obligó al usuario a null-verifique cada valor de Java, o use llamadas seguras (
?.
) o no-null afirmaciones (!!
). Esas son características muy útiles en el mundo puro de Kotlin, tienden a convertirse en un desastre cuando tienes que usarlas con demasiada frecuencia en la configuración de Kotlin/Java.Es por eso que adoptamos un enfoque radical e hicimos que el sistema de tipos de Kotlin fuera más relajado en lo que respecta a la interoperabilidad de Java: ahora las referencias provenientes de Java tienen tipos especialmente marcados — Kotlin Blog
Es la notación para los tipos de plataforma:
T!
significa “T
o T?
“
Tipos de plataforma
Los nombres de tipos o nombres de clases que terminan con un solo signo de exclamación !
son llamados tipos de plataformas en Kotlin. Los encuentra cuando trabaja en Kotlin con código Java antiguo que no contiene información de nulabilidad.
Ejemplos:
Información anulable: tipo anulable
@Nullable String
en Java se considera como String?
por Kotlin.
No-null Información: No-null Tipo
@NotNull String
en Java se considera como String
por Kotlin.
Sin información: tipo de plataforma
String
sin anotaciones en Java se considera como String!
por Kotlin.
¿Cómo lidiar con los tipos de plataforma?
Puede trabajar con un tipo de plataforma como anulable o nonull. El compilador le permitirá llamar a todos los métodos de este tipo. Es su responsabilidad cómo usarlos. Si sabes que el valor puede ser nulldebes compararlo con null antes de llamar a métodos en él. si sabes que no es nullpuede usarlo directamente pero, como en Java, obtendrá una excepción si su suposición sobre la nulabilidad es incorrecta.
Tenga en cuenta que no puede declarar tipos de plataforma en el código Kotlin, solo provienen del código Java.
Herencia y tipos de plataforma
Al anular los métodos de Java en el código de Kotlin, tiene la opción de declarar parámetros y tipos de retorno como anulables o nonull. Debe elegir esto sabiamente, porque si decide hacer que los parámetros no seannullel compilador de Kotlin generanull afirmaciones para estos no-null parámetros Y la próxima vez que acceda a este código de Kotlin desde Java y pase un null value, obtendrá una excepción.
Espero que ayude a despejar todas sus dudas sobre los tipos de plataforma.
Recuerda algo, que tienes la capacidad de decir si te ayudó.