что является различием между пустым указателем! = объект и объект! =null [дубликат]

7
задан Community 23 May 2017 в 12:10
поделиться

2 ответа

Первые два эквивалентны, но «null! = Object» - это старая практика из языков, где допустимо написать «if (object = null)» и случайно присвоить объекту null. Это охрана, чтобы предотвратить эту аварию.

Второй эквивалент пока имеет дополнительное преимущество, заключающееся в том, что если "something" имеет значение null, вы не получите исключение нулевой ссылки, тогда как если бы вы это сделали: something ".equals (" ").

20
ответ дан 6 December 2019 в 07:25
поделиться

Нет абсолютно никакой разницы ни в семантике, ни в производительности.

== в этом случае является операцией ссылочного неравенства; он никогда не может выбросить NullPointerException .

JLS 15.21.3 Операторы эталонного равенства == и! =

Если операнды оператора равенства относятся либо к ссылочному типу, либо к нулевому типу, тогда операция является равенством объектов.

Результатом ! = будет ложь , если оба значения операнда равны null или оба относятся к одному и тому же объекту или массиву; в противном случае результат будет истинным .

Используйте то, что наиболее читается. Обычно это что-то! = Null .

Связанные вопросы

4
ответ дан 6 December 2019 в 07:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: