Junior — Middle
Quais são as diferenças no sistema de tipos entre Java e Kotlin?
sobes.tech IA
Resposta da IA
Java é uma linguagem com tipagem estática, onde os tipos primitivos (int, boolean, etc.) e os tipos de referência estão claramente separados. Em Kotlin, os tipos são mais unificados: todos são objetos, incluindo os análogos dos primitivos, graças a um sistema de envoltórios que é otimizado pelo compilador.
Principais diferenças:
- Segurança nula: Em Kotlin, os tipos por padrão não podem conter null para evitar NullPointerException. Para tipos que podem ser null, usa-se a sintaxe com ponto de interrogação, por exemplo,
String?. - Tipos genéricos: Kotlin suporta um sistema de genéricos mais flexível com variância (in, out), em Java isso é implementado através de curingas.
- Tipos de dados: Kotlin possui tipos estendidos, por exemplo,
Unitem vez devoid, e suporta extensões de tipos.
Exemplo de segurança nula em Kotlin:
var a: String = "Hello"
// a = null // Erro de compilação
var b: String? = "Hello"
b = null // Permitido