Страница 1 из 2
Кусочек Java кода
Добавлено: 30 апр 2008, 14:21
Дима
Сегодня Senior Java Developer из головной штатовской конторы прислал кусочек своего кода, который в том числе проверяет переменную id на не null и не пустоту. Ржали всем офисом. Самое печальное то, что он не шутил...
Код: Выделить всё
if (!id.equalsIgnoreCase("") && !id.equals(null))
Re: Кусочек Java кода
Добавлено: 30 апр 2008, 14:54
Stanislav
Вы, наверное, просто не в курсе - в новом JDK Java 1.6.0_05 есть опция: вычислять логические выражения в обратном порядке - скорее всего он эту опцию и использует....
Re: Кусочек Java кода
Добавлено: 30 апр 2008, 15:18
Zy
Stanislav писал(а):Вы, наверное, просто не в курсе - в новом JDK Java 1.6.0_05 есть опция: вычислять логические выражения в обратном порядке - скорее всего он эту опцию и использует....
!id.equals(null) не будет работать даже в зеркальном или снизу вверх.
Re: Кусочек Java кода
Добавлено: 30 апр 2008, 15:36
Stanislav
Zy писал(а):Stanislav писал(а):Вы, наверное, просто не в курсе - в новом JDK Java 1.6.0_05 есть опция: вычислять логические выражения в обратном порядке - скорее всего он эту опцию и использует....
!id.equals(null) не будет работать даже в зеркальном или снизу вверх.
Почему это не будет работать? Очень даже будет!
Re: Кусочек Java кода
Добавлено: 30 апр 2008, 16:36
Ranger
NullPointerException, если оно таки "equals null"
Re: Кусочек Java кода
Добавлено: 30 апр 2008, 17:11
Stanislav
Ranger писал(а):NullPointerException, если оно таки "equals null"
А спорим, что !id.equals(null) никогда не бросит NPE?

Re: Кусочек Java кода
Добавлено: 30 апр 2008, 17:49
Ranger
Stanislav писал(а):Ranger писал(а):NullPointerException, если оно таки "equals null"
А спорим, что !id.equals(null) никогда не бросит NPE?

Давай. На щелбан?

Re: Кусочек Java кода
Добавлено: 30 апр 2008, 17:55
Stanislav
Ranger писал(а):Stanislav писал(а):Ranger писал(а):NullPointerException, если оно таки "equals null"
А спорим, что !id.equals(null) никогда не бросит NPE?

Давай. На щелбан?

гыыы, оно не бросит NPE, потому как его опередит !id.equalsIgnoreCase("")

Re: Кусочек Java кода
Добавлено: 30 апр 2008, 18:10
Ranger
Stanislav писал(а):Ranger писал(а):Stanislav писал(а):Ranger писал(а):NullPointerException, если оно таки "equals null"
А спорим, что !id.equals(null) никогда не бросит NPE?

Давай. На щелбан?

гыыы, оно не бросит NPE, потому как его опередит !id.equalsIgnoreCase("")

Так я и думал. Ну, как дитё малое

Напиши отдельно - бросит

Re: Кусочек Java кода
Добавлено: 30 апр 2008, 18:15
Stanislav
Ranger писал(а):Stanislav писал(а):Ranger писал(а):Stanislav писал(а):А спорим, что !id.equals(null) никогда не бросит NPE?

Давай. На щелбан?

гыыы, оно не бросит NPE, потому как его опередит !id.equalsIgnoreCase("")

Так я и думал. Ну, как дитё малое

Напиши отдельно - бросит


это я так, флудю немножко

Re: Кусочек Java кода
Добавлено: 01 май 2008, 06:54
Marmot
Встряну и я

Код вырван из контекста

Я легко могу себе представить ситуацию когда !id.equals(null) ==false и без NPE

Re: Кусочек Java кода
Добавлено: 01 май 2008, 09:29
Дима
Marmot писал(а):Встряну и я

Код вырван из контекста
Хе-хе, контекст я указал, между прочим

Кстати, его проверку на null я уже видел раньше, потому она меня не так впечатлила, как equalsIgnoreCase("").
Re: Кусочек Java кода
Добавлено: 01 май 2008, 09:40
Stanislav
Marmot писал(а):Встряну и я

Код вырван из контекста

Я легко могу себе представить ситуацию когда !id.equals(null) ==false и без NPE

А вот это уже интересно!
Пример в студию!
Re: Кусочек Java кода
Добавлено: 01 май 2008, 09:44
Marmot
Stanislav писал(а):Marmot писал(а):Встряну и я

Код вырван из контекста

Я легко могу себе представить ситуацию когда !id.equals(null) ==false и без NPE

А вот это уже интересно!
Пример в студию!
Подсказка, method equals() is not final

Re: Кусочек Java кода
Добавлено: 01 май 2008, 09:55
Stanislav
Marmot писал(а):Stanislav писал(а):Marmot писал(а):Встряну и я

Код вырван из контекста

Я легко могу себе представить ситуацию когда !id.equals(null) ==false и без NPE

А вот это уже интересно!
Пример в студию!
Подсказка, method equals() is not final

Не, ну это уже будет не String!