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ů.