Junior — Middle
Aké sú rozdiely medzi operátormi porovnania v Jave a Kotlin?
sobes.tech AI
Odpoveď od AI
V Java a Kotlin existujú určité rozdiely v operátoroch porovnávania:
- V Java sa na porovnanie primitívnych typov používa
==, zatiaľ čo na porovnanie objektov sa používa metódaequals(). - V Kotlin-e operátor
==kontroluje štrukturálnu rovnosť, čo znamená, že voláequals()na pozadí. - V Kotlin-e operátor
===kontroluje referenčnú rovnosť (podobne ako==pre objekty v Java).
Príklad:
// Java
String a = new String("test");
String b = new String("test");
boolean result1 = (a == b); // false, rôzne referencie
boolean result2 = a.equals(b); // true, obsah je rovnaký
// Kotlin
val a = String("test")
val b = String("test")
val result1 = (a == b) // true, štrukturálna rovnosť
val result2 = (a === b) // false, rôzne referencie
Preto je v Kotlin-e operátor == pohodlnejší na porovnávanie obsahu objektov, zatiaľ čo v Java-e je potrebné explicitne volať equals().