- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
public static List<Record> glueList(List<Record> list) {
List<Record> result = new ArrayList<Record>();
Record tlr = new Record();
boolean isToGlue = false;
for (int i = 0; i < list.size(); i++) {
if (!isToGlue) {
tlr = new Record();
tlr = list.get(i).clone();
}
Date endTime = new Date(list.get(i).getEndTime().getTime() + INSIGNIFICANT_TIME_BREAK);
if (list.size() > i + 1 && endTime.compareTo(list.get(i + 1).getStartTime()) >= 0) {
isToGlue = true;
tlr.setEndTime(list.get(i + 1).getEndTime());
} else {
isToGlue = false;
result.add(tlr);
}
}
return result;
}
1. Два раза создается и не используется объект Record
2. Для сравнения дат используется метод compareTo вместо методов after/before
! endTime.before(...)
и
endTime.compareTo(...) >= ...
я не вижу, даже пожалуй второй код более ясно выражает мысль. А что касается Record, просто после переписывания кода забыли убрать лишнюю инициализацию.
Как раз и плохо, что забыли...
обычный нормальный код
можно и понятнее написать конечно но проще закаментить и забыть :)
Ну забыли и забыли, обычный баг, в любом проекте таких больше девяти тысяч.
и шапку
И не забывать чт баги - это не всегда гавнокод :) а гавнокод - не всегда баги :) Ы