Sobes.tech
Junior — Middle

Mi a különbség az == operátorokkal történő objektum összehasonlításban Java és Kotlin esetén?

sobes.tech MI

Válasz az MI-től

Java-ban az == operátor az objektum hivatkozásokat hasonlítja össze, vagyis ellenőrzi, hogy két változó ugyanarra az objektumra mutat-e a memóriában.

Kotlinban az == operátor az objektumok értékeit hasonlítja össze, meghívva az equals() metódust, vagyis az objektumok tartalmának logikai egyezőségét ellenőrzi.

Ha Kotlinban hivatkozásokat szeretnél összehasonlítani, akkor a === operátort használd.

Példa:

val a = String("test")
val b = String("test")

println(a == b)  // true, érték szerinti összehasonlítás
println(a === b) // false, külön objektumok

Java-ban:

String a = new String("test");
String b = new String("test");

System.out.println(a == b);      // false, külön objektumok
System.out.println(a.equals(b)); // true, érték szerinti összehasonlítás