Sobes.tech
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 az equals() metódussal.
  • Kotlinban az == operátor a szerkezeti egyenlőséget ellenőrzi, azaz az equals()-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.