Junior — Middle
É possível explicar a diferença entre a classe Object em Java e o tipo Any em Kotlin?
sobes.tech IA
Resposta da IA
Em Java, a classe Object é a classe base de todas as classes, da qual todos os objetos herdam. Ela define métodos básicos como toString(), equals(), hashCode() e outros.
Em Kotlin, o tipo Any é análogo ao Object em Java, ou seja, o tipo base para todos os tipos não-nulos. No entanto, Any não possui métodos relacionados a null, e não inclui métodos que Object possui para trabalhar com null.
Principais diferenças:
Anynão pode ser null, para isso existe um tipo separadoAny?.- Os métodos em
Anysão limitados: háequals(),hashCode()etoString(), mas não métodos relacionados à sincronização ou clonagem, que existem emObject. - Em Kotlin, não há um equivalente direto ao
finalize()deObject.
Exemplo:
val a: Any = "Hello"
val b: Any? = null // Any nullable
Assim, Any é um tipo base mais limpo e seguro, sem suporte a null, ao contrário de Object em Java.