Sobes.tech
Junior — Middle

In che cosa si differenziano i tipi Object in Java e Any in Kotlin in termini di scopo e utilizzo?

sobes.tech AI

Risposta dell'AI

In Java, il tipo Object è la classe base per tutte le classi, da cui ereditano tutti gli oggetti. Viene usato per rappresentare qualsiasi oggetto, ma non può contenere tipi primitivi direttamente.

In Kotlin, il tipo Any è equivalente a Object, la classe base per tutte le classi, ma a differenza di Java, Kotlin distingue tra Any e Any? (nullable). Any non può contenere null, mentre Any? può. Inoltre, Kotlin ha tipi separati per i primitivi, che vengono convertiti automaticamente in oggetti se necessario.

Esempio:

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

printAny(123)       // Int viene automaticamente convertito in Any
printAny("test")  // String, che eredita da Any

Pertanto, Object in Java è una classe, mentre Any in Kotlin è un tipo di base che non permette null, aumentando la sicurezza dei tipi.