- 1
progress = progress != null ? progress + "%" : progress;
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+73
progress = progress != null ? progress + "%" : progress;
Да, давно я не смеялся...
wecanstoptrain 11.08.2010 18:50 # 0
Анонимус 11.08.2010 19:17 # 0
Анонимус 11.08.2010 21:13 # 0
Lure Of Chaos 11.08.2010 20:32 # −2
а так от progress = progress != null ? progress + "%" : null; не особо легче. ну или progress=String.format("%s%%",progress);
а вообще выражения вида param=func(param); однозначно зло
absolut 11.08.2010 22:43 # +1
index = next( index ); // Зло ? Готов не согласиться.
Lure Of Chaos 11.08.2010 23:04 # −2
void next() {this.index++;} c последующим next()
а если семантика меняется, то лучше
result=work(data);
конкретно, в сабже, progress справа был просто количеством, к примеру "50", а стал "50%" - стрингом для отображения.
вы же не будете спорить, что, допустим, 1 != 1 руб
absolut 12.08.2010 00:27 # −1
void next() {this.index++;} - ничем не лучше. Потому что теряем старое значение.
И нельзя написать other = next( index );
Кто сказал, что progress это кол-во ?
Я конечно не спец в java, но насколько мне известно, типизация данных в нем статическая.
Стало быть, если progress был целым, то строкой он никогда не станет.
Анонимус 12.08.2010 00:39 # 0
Кстати, в джаве есть типизация и статическая и динамическая. Джава насквозь типизированная)
Denis Popov 12.08.2010 08:44 # 0
Анонимус 12.08.2010 14:03 # −2
Lure Of Chaos 12.08.2010 09:13 # 0
index = next( index ); // здесь смысл не меняется, но присутствует избыточность
other = next( index ); // здесь все в порядке, потому что присваиваем другой пер.
> Стало быть, если progress был целым
то сабж не скомпилится. стало быть, он был строкой с числовым значением
не знаю уж, почему он не число, может Object значение из контрола получили и скастовали getValue().toString()
теперь глянем
на ситуевину после сабжа: в progress у нас стринг, и вот надо нам для расчета получить число. делаем Integer.parseInt(progress) и сваливаемся в NumberFormatException, потому что мы позабыли о знаке процента.
вывод: если вам нужно число, заведите себе числовую переменную, ну скажем double progress. как понадобится строка с процентом - заводите строковую, String progressView.
иначе, через строчек 10 у вас возникнет вопрос: а в каком формате у меня тут progress - с процентом или без? добавлять еще или нет? если вопроса не возникнет, получите баг.
поэтому - param=func(param); однозначно зло
Denis Popov 12.08.2010 09:17 # 0
Altravert 12.08.2010 09:30 # 0
absolut 12.08.2010 09:36 # 0
Altravert 12.08.2010 09:39 # 0
ЗЫ: Закралось подозрение после чтений: може дениска-то наш вебкиллов агент?
xXx_totalwar 12.08.2010 09:40 # 0
Анонимус 12.08.2010 00:40 # +1
Altravert 12.08.2010 15:39 # 0
raorn 12.08.2010 10:46 # 0
...
bar = foo.getAndSet( bar );