Avatar ·

¿Qué significa el signo de exclamación en Kotlin? (Signo de exclamación simple)

¡Hola, colegas! Recientemente comencé a aprender Kotlin después de Java, y hay algo que me confunde. En algunos lugares del código veo un signo de exclamación simple después del tipo de dato, por ejemplo, `String!` o `List!`. Entiendo que Kotlin distingue estrictamente entre tipos nullable (`String?`) y non-null (`String`), pero ¿qué es `String!`? No lo encontré en la documentación oficial. Aquí hay un ejemplo de mi proyecto donde uso una biblioteca de Java: ```kotlin // Código Java public class JavaClass { public static String getString() { return null; // puede devolver null } } // Código Kotlin fun main() { val result: String! = JavaClass.getString() // IDE muestra String! println(result.length) // Aquí espero un error de compilación, pero no lo hay } ``` El IDE (IntelliJ IDEA) muestra el tipo `String!` para la variable `result`. Intenté usar `result` como una cadena normal, y el compilador no se queja, pero en tiempo de ejecución obtengo un NullPointerException. ¿Por qué sucede esto? ¿Es algún tipo de