Kotlin Academy · Lección

Tipos de plataforma

Anulabilidad procedente de Java

Lección 4 de 413 pasos

Tipos de plataforma es una lección gratuita de Kotlin Academy en CoddyKit. Esta es la lección 4 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Kotlin Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Kotlin Academy incluye 4 lecciones en total.

Kotlin se encuentra con Java

Kotlin se ejecuta en la JVM y llama constantemente a código Java. Sin embargo, Java no tiene el concepto de tipos anulables y no nulos.

Entonces, ¿cómo gestiona Kotlin un valor procedente de Java? Mediante los tipos de plataforma.

Qué es un tipo de plataforma

Un tipo de plataforma es un tipo que Kotlin obtiene de Java cuya nulabilidad es desconocida.

Kotlin lo escribe como String! en los mensajes de error. El signo de exclamación significa que podría ser nulo o no nulo; Kotlin no impondrá ninguna de las dos opciones.

Comprobación más flexible

Para los tipos de plataforma, Kotlin relaja sus comprobaciones de nulabilidad. Puede tratar el valor como no nulo sin que el compilador muestre un error.

La contrapartida es que, si realmente es nulo, obtendrá una NullPointerException durante la ejecución.

Usted elige el tipo

Cuando almacena un valor de tipo de plataforma, decide cómo tiparlo:

  • como String no nulo → práctico, pero arriesgado
  • como String? anulable → seguro y explícito

Este ejemplo de Kotlin simula esa elección.

fun fromJava(): String? = "value from Java"

fun main() {
    val safe: String? = fromJava()
    println(safe?.length)
}

La opción arriesgada

Si supone que el valor no es nulo y el origen devuelve null, el error se produce al asignarlo o al utilizarlo por primera vez.

Este es el peligro oculto de los tipos de plataforma.

fun fromJava(): String? = null

fun main() {
    try {
        val risky: String = fromJava()!!
        println(risky.length)
    } catch (e: NullPointerException) {
        println("Null came from the Java side")
    }
}

Las anotaciones ayudan

Las bibliotecas de Java pueden utilizar anotaciones como @Nullable y @NotNull.

Cuando están presentes, Kotlin las respeta y le proporciona un String? o un String adecuado en lugar de un tipo de plataforma.

Buena práctica: suponer que es anulable

Al llamar a código Java sin anotaciones, la práctica segura es tratar el resultado como anulable.

Declare la variable con ? y utilice llamadas seguras, igual que con cualquier valor anulable de Kotlin.

fun fromJava(): String? = "data"

fun main() {
    val value: String? = fromJava()
    val length = value?.length ?: 0
    println(length)
}

Límites defensivos

Trate el límite con Java como una fuente no fiable. Valide los valores o asígneles un valor predeterminado justo cuando entren en su código Kotlin.

A partir de ese momento, el resto del código funcionará con tipos Kotlin claros.

fun fromJava(): String? = null

fun main() {
    val name = fromJava() ?: "default"
    // from here on, name is a clean non-null String
    println(name.uppercase())
}

Por qué Kotlin lo permite

Kotlin podría obligar a tratar como anulable cada valor de Java, pero eso haría que la interoperabilidad con Java fuera excesivamente verbosa.

Los tipos de plataforma son una solución pragmática: ofrecen comodidad y, al mismo tiempo, la posibilidad de aplicar comprobaciones estrictas.

Cómo detectar tipos de plataforma

No escribirá String! directamente. Solo aparece en las sugerencias del IDE y en los mensajes de error cuando coloca el cursor sobre valores procedentes de Java.

Ver el signo ! le indica que debe decidir deliberadamente su nulabilidad.

Todo junto

Los tipos de plataforma conectan Java y Kotlin:

  • Tienen una nulabilidad desconocida, que se muestra como Type!
  • Kotlin le permite elegir entre un tipo anulable y uno no nulo
  • Cuando tenga dudas, suponga que es anulable para mantener la seguridad
  • Las anotaciones eliminan las conjeturas
fun fromJava(): String? = "safe value"

fun main() {
    val value: String? = fromJava()
    println(value?.uppercase() ?: "missing")
}

Comprobación rápida

Compruebe cuánto ha comprendido sobre los tipos de plataforma.

Repaso

Ha aprendido cómo atraviesa la nulabilidad el límite con Java:

  • Los tipos de plataforma tienen una nulabilidad desconocida
  • Kotlin relaja las comprobaciones, pero una suposición incorrecta provoca una NPE durante la ejecución
  • Suponga que los valores son anulables y asígneles valores predeterminados en el límite
  • Las anotaciones de Java restablecen los tipos adecuados

Con esto concluye la profundización en la seguridad frente a nulos.

Gratis para empezar

Aprende Kotlin con un tutor de IA — gratis

Escribe y ejecuta código real en tu navegador, obtén ayuda instantánea de un tutor de IA disponible 24/7 y continúa donde lo dejaste en la web o en la aplicación.

Cursos
51
Lecciones
203

Preguntas frecuentes

¿La lección «Tipos de plataforma» es gratis?

Sí — el texto completo de «Tipos de plataforma» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Kotlin Academy, actualiza a CoddyKit PRO. El curso de Kotlin Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Tipos de plataforma»?

Anulabilidad procedente de Java Practicas Kotlin Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Kotlin Academy?

No se requiere experiencia previa. Kotlin Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 4 de 4.

¿Cuánto tiempo toma la lección «Tipos de plataforma»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Kotlin Academy?

Sí. Cada lección de Kotlin Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Tipos anulables y no anulables
  2. Llamadas seguras y Elvis
  3. El operador !!
  4. Tipos de plataforma
← Volver a Kotlin Academy