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