Sobes.tech
Junior — Middle

Kako odrediti da li dva objekta referenciraju isti primerak u memoriji?

sobes.tech АИ

Одговор од АИ

U Android (Java/Kotlin), za proveru da li dva objekta referišu na istu instancu u memoriji, koristi se operator == (u Kotlinu) ili operator == u Javi za proveru referenci (u Javi, za proveru reference koristi se ==, a za poređenje sadržaja metoda equals()).

Primer u Kotlinu:

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

println(obj1 == obj2) // true, jer su reference iste
println(obj1 == obj3) // false, različite instance

U Javi:

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

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

Dakle, operator == poredi reference, a metoda equals() poredi sadržaj objekata.