Проверка на пустоту объекта в Java - PullRequest
1 голос
/ 28 сентября 2011

Какой из них рекомендован и используется для проверки нулевого значения объекта?

null != Object

или

Object != null

и другим способом

null == Object

или

Object == null

... и есть ли разница между ними?

Ответы [ 2 ]

5 голосов
/ 28 сентября 2011

(In) равенство является коммутативным, поэтому нет никакой разницы.

Исторически первое происходит от C, чтобы избежать случайного присвоения значения в условном выражении, однако это в основном относится к ==, а не !=.Кроме того, Java требует, чтобы условие в условном выражении имело логическое значение, поэтому единственное место, где оно могло бы пойти не так в наше время, было бы

if (a == false) ...

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

1 голос
/ 28 сентября 2011

Всегда удобнее использовать

Object != null

, потому что это читается как "объект не равен нулю", что буквально соответствует условию.Единственный случай, когда вы хотите поменять местами два, - это избежать случайного использования

Object = null

, которое будет возвращать true, даже если это не желаемое поведение, когда вы хотите сказать

Object == null

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

...