É possível obter uma NullPointerException em Kotlin?
sobes.tech IA
Resposta da IA
Sim, é possível. Apesar do sistema de tipos estrito e dos tipos nullable (?), NullPointerException pode ocorrer nos seguintes casos:
-
Ao chamar código Java sem anotações de null-safety: Se um método Java retornar
null, e esse método for chamado em Kotlin sem uma verificação explícita denull, Kotlin pode lançar umaNullPointerExceptionao tentar acessar os membros desse objeto. -
Uso do operador
!!(chamada com afirmação de não nulo): Este operador indica explicitamente que o valor não pode sernull. Se na verdade fornull, umaNullPointerExceptionserá lançada.// Exemplo de uso do operador "!!" var nullableString: String? = null val nonNullString: String = nullableString!! // Lançará NullPointerException -
Variáveis
lateinit varnão inicializadas: Se uma variável declarada com a palavra-chavelateinitfor usada antes de sua inicialização, será lançada umaUninitializedPropertyAccessException, que é uma subclasse deRuntimeExceptione por sua natureza se assemelha a umaNullPointerException. -
Violação do contrato
@NonNullno código Java: Se um método Java anotado com@NonNullretornar na verdadenull, ao chamá-lo de Kotlin pode ocorrer umaNullPointerException. -
Problemas na interoperabilidade com C/C++: O código escrito em Kotlin pode interagir com código nativo via JNI. Erros no código nativo ou manejo incorreto de ponteiros podem levar a falhas ou
NullPointerExceptionna JVM.