Sobes.tech
Junior — Middle

Jak można ustalić, czy dwa obiekty odwołują się do tego samego egzemplarza w pamięci?

sobes.tech AI

Odpowiedź od AI

W Android (Java/Kotlin), aby sprawdzić, czy dwa obiekty odwołują się do tego samego egzemplarza w pamięci, używa się operatora == (w Kotlinie) lub operatora == w Javie do sprawdzania odwołań (w Javie do sprawdzania odwołań używa się ==, a do porównania zawartości — metody equals()).

Przykład w Kotlinie:

val obj1 = SomeClass()
val obj2 = obj1
val obj3 = SomeClass()

println(obj1 == obj2) // true, ponieważ odwołania są takie same
println(obj1 == obj3) // false, różne egzemplarze

W Javie:

SomeClass obj1 = new SomeClass();
SomeClass obj2 = obj1;
SomeClass obj3 = new SomeClass();

System.out.println(obj1 == obj2); // true
System.out.println(obj1 == obj3); // false

Zatem operator == porównuje odwołania, a metoda equals() porównuje zawartość obiektów.