Todo programador Java competente sabe que necesita usar String.equals () para comparar una cadena, en lugar de == porque == verifica la igualdad de referencia.
Cuando estoy tratando con cadenas, la mayoría de las veces estoy verificando la igualdad de valores en lugar de la igualdad de referencia. Me parece que sería más intuitivo si el lenguaje permitiera comparar los valores de cadena simplemente usando ==.
Como comparación, el operador de C # 's == verifica la igualdad de valores para la cadena s. Y si realmente necesita verificar la igualdad de referencia, puede usar String.ReferenceEquals.
Otro punto importante es que las cadenas son inmutables, por lo que no hay que hacer daño al permitir esta función.
¿Hay alguna razón particular por la que esto no se implementa en Java?
==
operador solo se asigna a Equals
si el ==
operador se implementó de esa manera. El comportamiento predeterminado para ==
es el mismo que ReferenceEquals
(en realidad, ReferenceEquals
se define como la versión del objeto de ==
)
==
es la igualdad de objetos y laeq
igualdad de referencia ( ofps.oreilly.com/titles/9780596155957/… ).