(Untitled)

Mar 23, 2009 19:50

Кстати, о Джаве.
Джожуа Блох в своём "Java. Эффективное программирование" писал, что при обработке событий, следует избегать возвращения null. Например, вместо

String foo {
   return (cond? String : null);
}

делать

return (cond? String : "" );Я тогда еще очень удивлялась, зачем это надо и вообще. А сейчас поняла: если вызвать ( Read more... )

work, coding

Leave a comment

Comments 57

(The comment has been removed)

vannadis March 23 2009, 17:11:41 UTC
потом что equals определен для объектов, а null -- это null=)

Reply

(The comment has been removed)

vannadis March 23 2009, 17:17:29 UTC
В общем, да.

null - пустая ссылка.
А когда ты создаешь строку, даже пустую, у тебя всё равно выделяется для неё память.

Reply


asper March 23 2009, 18:08:53 UTC
так ты ж похудеешь

Reply

vannadis March 23 2009, 18:18:01 UTC
ужасно, да.

Reply


(The comment has been removed)

vannadis March 23 2009, 18:17:47 UTC
ну не сейчас же ж=)
я подумаю.

Reply

asper March 23 2009, 18:50:57 UTC
незаживший язык это малоэстетично

Reply


_navi_ March 23 2009, 18:13:27 UTC
практика вообще хорошая, но в идеале надо что-то вроде Haskell'ных Maybe String (или Scala'вских Option[String]), это, во-первых, явно подчёркивает, что код у тебя может вернуть не значение, а ничто, а, во-вторых, обязательно придётся проверить, перед тем как вытащить, есть ли там что.

А для корректного сравнения правильнее делать
if ("Smith".equals(foo()) { ... }

Reply

vannadis March 23 2009, 18:16:50 UTC
посмотрю, ага.

>>А для корректного сравнения правильнее делать
>>if ("Smith".equals(foo()) { ... }

Я так и сделала.

Reply


alamar March 23 2009, 19:28:38 UTC
А у нас есть три метода, которые мы всегда используем

Util.notNull(строка) - строка, если null, то ""
Util.isEmpty(строка) - false, ести null или "", иначе true
Util.isNotEmpty(строка) - ! isEmpty(строка)

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

Впрочем, до рубирельсового foo.blank? нам и пёрнув не допрыгнуть: там null.blank? == false!

Reply

alamar March 23 2009, 19:29:01 UTC
Вернее, оно там nil называется, ну да один хрен же.

Reply


Leave a comment

Up