Sobes.tech
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, Unit em vez de void, 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