Junior — Middle
Milyen különbségek vannak a Java és Kotlin összehasonlító operátorai között?
sobes.tech MI
Válasz az MI-től
Java és Kotlin esetén a összehasonlító operátorok néhány különbséget mutatnak:
- Java-ban primitív típusokat az
==operátorral hasonlítunk össze, az objektumokat pedig azequals()metódussal. - Kotlinban az
==operátor a szerkezeti egyenlőséget ellenőrzi, azaz azequals()-t hívja meg háttérben. - Kotlinban a
===operátor az referenciális egyenlőséget ellenőrzi (hasonlóan a Java==-jéhez az objektumokra).
Példa:
// Java
String a = new String("test");
String b = new String("test");
boolean result1 = (a == b); // false, külön referenciák
boolean result2 = a.equals(b); // true, tartalom egyezik
// Kotlin
val a = String("test")
val b = String("test")
val result1 = (a == b) // true, szerkezeti egyenlőség
val result2 = (a === b) // false, külön referenciák
Ezért Kotlinban a == operátor kényelmesebb az objektumok tartalmának összehasonlítására, míg Java-ban explicit módon kell meghívni az equals()-t.