Sobes.tech
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:

  • Any não pode ser null, para isso existe um tipo separado Any?.
  • Os métodos em Any são limitados: há equals(), hashCode() e toString(), mas não métodos relacionados à sincronização ou clonagem, que existem em Object.
  • Em Kotlin, não há um equivalente direto ao finalize() de Object.

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.