Sobes.tech
Junior — Middle

V čem se liší typy Object v Java a Any v Kotlin z hlediska jejich určení a použití?

sobes.tech AI

Odpověď od AI

V jazyce Java je typ Object základní třídou pro všechny třídy, ze které dědí všechny objekty. Používá se k reprezentaci jakéhokoliv objektu, ale nemůže přímo obsahovat primitivní typy.

V Kotlinu je typ Any ekvivalentem Object, základním typem pro všechny třídy, ale na rozdíl od Javy Kotlin rozlišuje mezi Any a Any? (nullable). Any nemůže obsahovat null, ale Any? může. Navíc má Kotlin samostatné typy pro primitivy, které jsou podle potřeby automaticky převáděny na objekty.

Příklad:

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

printAny(123)       // Int je automaticky převeden na Any
printAny("text")  // String, který dědí od Any

Tedy, v jazyce Java je Object třída, zatímco v Kotlinu je Any základní typ, který nepovoluje null, což zvyšuje bezpečnost typů.