Sobes.tech
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.