Sobes.tech
Junior — Middle

V čom sa líšia typy Object v Jave a Any v Kotline z hľadiska ich určenia a použitia?

sobes.tech AI

Odpoveď od AI

V Jave je typ Object základná trieda pre všetky triedy, z ktorej dedí všetky objekty. Používa sa na reprezentáciu akéhokoľvek objektu, ale nemôže obsahovať priamo primitívne typy.

V Kotlin je typ Any ekvivalentom Object, základným typom pre všetky triedy, ale na rozdiel od Javy, Kotlin rozlišuje medzi Any a Any? (nullable). Any nemôže obsahovať null, ale Any? môže. Okrem toho má Kotlin samostatné typy pre primitívne, ktoré sa automaticky konvertujú na objekty podľa potreby.

Príklad:

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

printAny(123)       // Int sa automaticky konvertuje na Any
printAny("text")  // String, ktorý dedí od Any

Takže, v Jave je Object trieda, zatiaľ čo v Kotlin je Any základný typ, ktorý neumožňuje null, čím zvyšuje bezpečnosť typov.