Все, что вы хотели знать о программизме, но боялись спросить.
Дима
Маньяк
Сообщения: 1455 Зарегистрирован: 15 авг 2006, 10:21
Откуда: Минск->Vancouver->Victoria
Сообщение
Дима » 30 апр 2008, 14:21
Сегодня Senior Java Developer из головной штатовской конторы прислал кусочек своего кода, который в том числе проверяет переменную id на не null и не пустоту. Ржали всем офисом. Самое печальное то, что он не шутил...
Код: Выделить всё
if (!id.equalsIgnoreCase("") && !id.equals(null))
Stanislav
Mr. Minority Report
Сообщения: 45271 Зарегистрирован: 19 окт 2005, 16:33
Откуда: Moscow - Richmond - New Wesт - Burnaby - PoCo
Сообщение
Stanislav » 30 апр 2008, 14:54
Вы, наверное, просто не в курсе - в новом JDK Java 1.6.0_05 есть опция: вычислять логические выражения в обратном порядке - скорее всего он эту опцию и использует....
Zy
Маньяк
Сообщения: 4706 Зарегистрирован: 20 янв 2005, 19:11
Сообщение
Zy » 30 апр 2008, 15:18
Stanislav писал(а): Вы, наверное, просто не в курсе - в новом JDK Java 1.6.0_05 есть опция: вычислять логические выражения в обратном порядке - скорее всего он эту опцию и использует....
!id.equals(null) не будет работать даже в зеркальном или снизу вверх.
Stanislav
Mr. Minority Report
Сообщения: 45271 Зарегистрирован: 19 окт 2005, 16:33
Откуда: Moscow - Richmond - New Wesт - Burnaby - PoCo
Сообщение
Stanislav » 30 апр 2008, 15:36
Zy писал(а): Stanislav писал(а): Вы, наверное, просто не в курсе - в новом JDK Java 1.6.0_05 есть опция: вычислять логические выражения в обратном порядке - скорее всего он эту опцию и использует....
!id.equals(null) не будет работать даже в зеркальном или снизу вверх.
Почему это не будет работать? Очень даже будет!
Ranger
Маньяк
Сообщения: 1199 Зарегистрирован: 22 окт 2003, 18:28
Откуда: 2:5025 -> Burnaby
Сообщение
Ranger » 30 апр 2008, 16:36
NullPointerException, если оно таки "equals null"
Stanislav
Mr. Minority Report
Сообщения: 45271 Зарегистрирован: 19 окт 2005, 16:33
Откуда: Moscow - Richmond - New Wesт - Burnaby - PoCo
Сообщение
Stanislav » 30 апр 2008, 17:11
Ranger писал(а): NullPointerException, если оно таки "equals null"
А спорим, что !id.equals(null) никогда не бросит NPE?
Ranger
Маньяк
Сообщения: 1199 Зарегистрирован: 22 окт 2003, 18:28
Откуда: 2:5025 -> Burnaby
Сообщение
Ranger » 30 апр 2008, 17:49
Stanislav писал(а): Ranger писал(а): NullPointerException, если оно таки "equals null"
А спорим, что !id.equals(null) никогда не бросит NPE?
Давай. На щелбан?
Stanislav
Mr. Minority Report
Сообщения: 45271 Зарегистрирован: 19 окт 2005, 16:33
Откуда: Moscow - Richmond - New Wesт - Burnaby - PoCo
Сообщение
Stanislav » 30 апр 2008, 17:55
Ranger писал(а): Stanislav писал(а): Ranger писал(а): NullPointerException, если оно таки "equals null"
А спорим, что !id.equals(null) никогда не бросит NPE?
Давай. На щелбан?
гыыы, оно не бросит NPE, потому как его опередит !id.equalsIgnoreCase("")
Ranger
Маньяк
Сообщения: 1199 Зарегистрирован: 22 окт 2003, 18:28
Откуда: 2:5025 -> Burnaby
Сообщение
Ranger » 30 апр 2008, 18:10
Stanislav писал(а): Ranger писал(а): Stanislav писал(а): Ranger писал(а): NullPointerException, если оно таки "equals null"
А спорим, что !id.equals(null) никогда не бросит NPE?
Давай. На щелбан?
гыыы, оно не бросит NPE, потому как его опередит !id.equalsIgnoreCase("")
Так я и думал. Ну, как дитё малое
Напиши отдельно - бросит
Stanislav
Mr. Minority Report
Сообщения: 45271 Зарегистрирован: 19 окт 2005, 16:33
Откуда: Moscow - Richmond - New Wesт - Burnaby - PoCo
Сообщение
Stanislav » 30 апр 2008, 18:15
Ranger писал(а): Stanislav писал(а): Ranger писал(а): Stanislav писал(а): А спорим, что !id.equals(null) никогда не бросит NPE?
Давай. На щелбан?
гыыы, оно не бросит NPE, потому как его опередит !id.equalsIgnoreCase("")
Так я и думал. Ну, как дитё малое
Напиши отдельно - бросит
это я так, флудю немножко
Marmot
Графоман
Сообщения: 39283 Зарегистрирован: 17 фев 2003, 17:58
Откуда: Caulfeild
Контактная информация:
Сообщение
Marmot » 01 май 2008, 06:54
Встряну и я
Код вырван из контекста
Я легко могу себе представить ситуацию когда !id.equals(null) ==false и без NPE
Дима
Маньяк
Сообщения: 1455 Зарегистрирован: 15 авг 2006, 10:21
Откуда: Минск->Vancouver->Victoria
Сообщение
Дима » 01 май 2008, 09:29
Marmot писал(а): Встряну и я
Код вырван из контекста
Хе-хе, контекст я указал, между прочим
Кстати, его проверку на null я уже видел раньше, потому она меня не так впечатлила, как equalsIgnoreCase("").
Stanislav
Mr. Minority Report
Сообщения: 45271 Зарегистрирован: 19 окт 2005, 16:33
Откуда: Moscow - Richmond - New Wesт - Burnaby - PoCo
Сообщение
Stanislav » 01 май 2008, 09:40
Marmot писал(а): Встряну и я
Код вырван из контекста
Я легко могу себе представить ситуацию когда !id.equals(null) ==false и без NPE
А вот это уже интересно!
Пример в студию!
Marmot
Графоман
Сообщения: 39283 Зарегистрирован: 17 фев 2003, 17:58
Откуда: Caulfeild
Контактная информация:
Сообщение
Marmot » 01 май 2008, 09:44
Stanislav писал(а): Marmot писал(а): Встряну и я
Код вырван из контекста
Я легко могу себе представить ситуацию когда !id.equals(null) ==false и без NPE
А вот это уже интересно!
Пример в студию!
Подсказка, method equals() is not final
Stanislav
Mr. Minority Report
Сообщения: 45271 Зарегистрирован: 19 окт 2005, 16:33
Откуда: Moscow - Richmond - New Wesт - Burnaby - PoCo
Сообщение
Stanislav » 01 май 2008, 09:55
Marmot писал(а): Stanislav писал(а): Marmot писал(а): Встряну и я
Код вырван из контекста
Я легко могу себе представить ситуацию когда !id.equals(null) ==false и без NPE
А вот это уже интересно!
Пример в студию!
Подсказка, method equals() is not final
Не, ну это уже будет не String!