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 meetoditequals(). - Kotlinis kontrollib operaator
==struktuurset võrdlust, kutsudesequals()-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.