2010-06-09 2 views
8

Привет, мне хотелось бы узнать разницу между приведенными выше сравнениями?Разница между нулем == объект и объект == null

Я получаю null указатель исключение, когда я проверяю object.getItems() == null. Но если я изменю его на null == object.getItems(), он отлично работает.

Я просмотрел этот what is the difference between null != object and object!=null Но я не получил удовлетворительного ответа.

+11

Нет, это изменение не изменится, если NPE будет выброшен или нет. Повторно проверьте свои предположения, потому что эти два выражения эквивалентны. –

+0

Я получаю NPE в обоих направлениях. Что такое null, когда вы пытаетесь, объект? –

+0

Пожалуйста, опубликуйте полный оператор Java, возможно, проблема - это просто неуместная/отсутствующая скобка. –

ответ

13

(Похожий вопрос: Which is more effective: if (null == variable) or if (variable == null)?)

Разница между нулем == объекта и объект == NULL

Там нет семантической разницы.

object.getItems() == null и null == object.getItems() являются эквивалентными.

Возможно, вы смешиваете его с тем, что

nonNullObj.equals(obj) 

и

obj.equals(nonNullObj) 

может сделать разницу (так как вторая альтернатива может привести к NPE в случае вызываемая равна нулю).

+0

В чем причина второго выражения NPE – Pedantic

+0

@Rozer, если obj равно null, тогда вызов метода .equals приведет к NPE. – aioobe

Смежные вопросы