Sobes.tech
Junior — Middle

Millised on võrdlusoperaatorite erinevused Java ja Kotlinis?

sobes.tech AI

Vastus AI-lt

Java ja Kotlinil on võrdlusoperaatoritel mõned erinevused:

  • Java-s kasutatakse primitiivsete tüüpide võrdlemiseks ==, objekti võrdlemiseks aga meetodit equals().
  • Kotlinis kontrollib operaator == struktuurset võrdlust, kutsudes equals()-i taustal.
  • Kotlinis kontrollib operaator === viitevõrdlust (sarnane Java ==-le objektide puhul).

Näide:

// Java
String a = new String("test");
String b = new String("test");
boolean result1 = (a == b);       // false, erinevad viited
boolean result2 = a.equals(b);    // true, sisu on sama
// Kotlin
val a = String("test")
val b = String("test")
val result1 = (a == b)    // true, struktuurne võrdlus
val result2 = (a === b)   // false, erinevad viited

Seetõttu on Kotlinis == operaator mugavam objekti sisu võrdlemiseks, Java puhul tuleb equals() eraldi välja kutsuda.