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.