Почему использовать obj == null вместо obj.equals (null) в Java?

Я понимаю, что второй выбор будет вызывать исключение, когда он в действительности будет недействительным: Но какой-то другой разум существует?

1
задан 16.11.2016, 19:32
5 ответов

equals, предполагается, что он сравнивает, что контент двух объектов был эквивалентным, за пределами Вашего тождества (или же инстанция объекта, который сравнивается с ==).

Переменная не объект, это контейнер типа информации / объекта. Если переменная стоит null ты не можешь сравнивать это как равенство, так как нет никакого объекта, который нужно сравнивать.

10
ответ дан 24.11.2019, 12:35

Оператор == сравнивает ссылку объекта. и .equals() подтверди, равны ли два объекта, но, хотя объекты равны null , сравнившись, получит один NullPointerException.

4
ответ дан 24.11.2019, 12:35

Разум - porqué хочет сравниться ссылка и для этого конца лучше использовать оператор ==

Метод equals сравнит равенство valor двух объектов. посланного параметра должно быть один Objeto и не ссылка, если не появится NullPointerException

Начиная с Java 7.0 добавился Метод equals (Object в, Object b) класса Objects, чтобы это подтверждать

Objects.equals(null,valor)
2
ответ дан 24.11.2019, 12:35

Мое мнение:

Когда ты сравниваешь два объекта с (==) то, что ты сравниваешь, если две ссылки указывают на тот же адрес памяти, где помещен объект.

Пример:

Человек persona1 = new Является лично (); Человек persona2 = new Является лично ();

если ты сравниваешь.

persona1 == persona2-> результат будет фальшивым.

но если ты это делаешь:

persona2 = persona1-> ты показываешь, что persona2 я снабдил ссылками объект, снабженный ссылками из-за persona1.

тогда сравнив.

persona1 == persona2-> он даст true.

Я женю 2 equals.

Метод equals объявлен в главном классе Object, показывает, равны ли два объекта (если у них есть тот же контент), все классы в java получают в наследство object ясно или безусловно.

В случае класса java.lang. String, если мы проверяем документацию sobreescribe метод equals.

Пример:

String nombre1 = "joel"; String nombre2 = "joel";

nombre1.equals (nombre2)-> Результат будет истинным, так как у них есть тот же контент.

Если бы ты захотел сравнить твои собственные созданные объекты, посредством equals, что ты должен делать, состоит sobreescribir метод equals и в том, чтобы осуществлять это.

В документации Java говорят, как нужно осуществлять метод equals продолжая Ваш контракт.

https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html#equals (java.lang. Object)

Я надеюсь помочь тебе.

1
ответ дан 24.11.2019, 12:35

Оператор == реализует ее comparaciГіn на уровне объекта. А именно, определи, если оба объекта равны.

mГ©todo equals () сравнивает символы внутри объекта String.

0
ответ дан 24.11.2019, 12:35
  • 1
    Ты достаточно неправильный. Deberí схвати удалять этот ответ, чтобы не запутывать людей. Ни одна из двух вещей, которые ты поместил, не является верной. Верным является то, что он помещает @rnd – Awes0meM4n 16.11.2016, 20:53