Sobes.tech
Junior — Middle

Em que se diferenciam os tipos Object em Java e Any em Kotlin em termos de propósito e uso?

sobes.tech IA

Resposta da IA

Em Java, o tipo Object é a classe base para todas as classes, da qual todos os objetos herdam. É usado para representar qualquer objeto, mas não pode conter tipos primitivos diretamente.

Em Kotlin, o tipo Any é o equivalente a Object, a classe base para todas as classes, mas ao contrário do Java, Kotlin separa Any e Any? (nullable). Any não pode conter null, mas Any? pode. Além disso, Kotlin tem tipos separados para primitivos, mas eles são automaticamente convertidos em objetos quando necessário.

Exemplo:

fun printAny(value: Any) {
    println(value.toString())
}

printAny(123)       // Int é convertido automaticamente em Any
printAny("texto") // String, que herda de Any

Assim, Object em Java é uma classe, e Any em Kotlin é um tipo base que não permite null, o que aumenta a segurança de tipos.