Страница 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? :D

Re: Кусочек Java кода

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

Re: Кусочек Java кода

Добавлено: 30 апр 2008, 17:55
Stanislav
Ranger писал(а):
Stanislav писал(а):
Ranger писал(а):NullPointerException, если оно таки "equals null"
А спорим, что !id.equals(null) никогда не бросит NPE? :D
Давай. На щелбан? ;)
гыыы, оно не бросит NPE, потому как его опередит !id.equalsIgnoreCase("") :D

Re: Кусочек Java кода

Добавлено: 30 апр 2008, 18:10
Ranger
Stanislav писал(а):
Ranger писал(а):
Stanislav писал(а):
Ranger писал(а):NullPointerException, если оно таки "equals null"
А спорим, что !id.equals(null) никогда не бросит NPE? :D
Давай. На щелбан? ;)
гыыы, оно не бросит NPE, потому как его опередит !id.equalsIgnoreCase("") :D
Так я и думал. Ну, как дитё малое :) Напиши отдельно - бросит :-P

Re: Кусочек Java кода

Добавлено: 30 апр 2008, 18:15
Stanislav
Ranger писал(а):
Stanislav писал(а):
Ranger писал(а):
Stanislav писал(а):А спорим, что !id.equals(null) никогда не бросит NPE? :D
Давай. На щелбан? ;)
гыыы, оно не бросит NPE, потому как его опередит !id.equalsIgnoreCase("") :D
Так я и думал. Ну, как дитё малое :) Напиши отдельно - бросит :-P
:D это я так, флудю немножко :D

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!