Avatar ·

O que significa o ponto de exclamação em Kotlin? (Ponto de exclamação simples)

Olá, colegas! Recentemente comecei a estudar Kotlin depois de Java, e uma coisa me confunde. Em alguns lugares no código, vejo um ponto de exclamação simples após o tipo de dado, por exemplo, `String!` ou `List!`. Eu entendo que Kotlin distingue estritamente entre tipos nullable (`String?`) e non-null (`String`), mas o que é `String!`? Na documentação oficial não encontrei isso. Aqui está um exemplo do meu projeto, onde estou usando uma biblioteca Java: ```kotlin // Código Java public class JavaClass { public static String getString() { return null; // pode retornar null } } // Código Kotlin fun main() { val result: String! = JavaClass.getString() // IDE mostra String! println(result.length) // Aqui eu esperava um erro de compilação, mas não há } ``` A IDE (IntelliJ IDEA) mostra o tipo `String!` para a variável `result`. Tentei usar `result` como uma string normal, e o compilador não reclama, mas em tempo de execução recebo um NullPointerException. Por que isso acontece? É algum tipo de