В java нам нужно сравнить объекты с помощью .equals()
вместо ==
. Но почему компилятор не может сделать это для нас? Например:Есть ли причина, по которой java-компилятор не может просто заменить .equals for == при сравнении объектов?
if (myString == myOtherString){
doSomething();
}
почему косяк компилятор идти «о, мы сравниваем объекты!», И изменить его к этому:
if (myString.equals(myOtherString))
Почему мы делаем это вручную?
Редактировать - Ребята, я знаю разницу между == и .equals(). Вы можете перестать рассказывать мне, насколько я неосведомлен. Мой вопрос заключается в том, почему не просто заменить .equals(), так как вы хотите 99% времени. Я узнал, что бывают случаи, когда полезно знать, являются ли два объекта действительно одной и той же ссылкой.
Потому что несколько раз вы хотите использовать '=='. –
иногда вы хотите знать, действительно ли у вас есть тот же объект, а не только то, что выглядит одинаково. – wastl
Можете ли вы привести пример, где это было бы полезно? – niznuck