Junior — Middle
Czym różnią się typy Object w Java i Any w Kotlinie pod względem ich przeznaczenia i użycia?
sobes.tech AI
Odpowiedź od AI
W Javie typ Object jest podstawową klasą dla wszystkich klas, z której dziedziczą wszystkie obiekty. Służy do reprezentowania dowolnego obiektu, ale nie może bezpośrednio zawierać typów prymitywnych.
W Kotlinie typ Any jest odpowiednikiem Object, podstawowym typem dla wszystkich klas, ale w przeciwieństwie do Javy, Kotlin rozdziela Any i Any? (nullable). Any nie może zawierać null, ale Any? może. Ponadto, Kotlin ma oddzielne typy dla prymitywów, które są automatycznie konwertowane na obiekty w razie potrzeby.
Przykład:
fun printAny(value: Any) {
println(value.toString())
}
printAny(123) // Int jest automatycznie konwertowany na Any
printAny("tekst") // String, dziedziczy po Any
Tak więc, Object w Javie to klasa, a Any w Kotlinie to podstawowy typ, który nie dopuszcza null, co zwiększa bezpieczeństwo typów.