+70
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
for (AllResponseCache actionResponse : allResponses) {
if (null != actionResponse.getResponseStatus() && actionResponse.getResponseStatus().length() > 0) {
for (ResponseSubjectCache subj : actionResponse.getSubjects()) {
// find needed element
if (subj.getClaims() != null) {
for (ClaimCache claimCache : subj.getClaims()) {
Seller seller = getSellerByPersonMatched(pool, claimCache);
if (seller != null) {
if (mapToSyncronize.get(seller) == null) {
mapToSyncronize.put((SellerrEntity) seller, new LinkedList<ReportResponseCache>());
}
mapToSyncronize.get(seller).add(actionResponse);
}
}
}
}
}
}
Индусы и "for-if"-ы.
Я уж думал будет хронология как в России с "президентами" - "лысый, волосатый, лысый, волосатый" и так далее.
А тут "for, if, for, if" но в конце всё-таки 2 иф-а!
Запостил:
Dimedrol,
25 Октября 2011
разве что в функциональном языке это, вероятно, делается в две-три строчки
только я не вьеду до конца, что оно тут делает.
static List<T> noNull(List<T> l){
return (l==null ? Collections.emptyList() : l);
}
static List<T> noNull(Map<T> m){
return (l==null ? Collections.emptyMap() : m);
}
итд...
Ибо без сомнений такое и в других местах по проекту встречается.
В идеале такой вот код
Выглядел бы так
Использование:
Используемая здесь идиома так распространена, что в Питоне для этого есть специальный тип — defaultdict.
if (seller != null) здесь вообще не при делах, это особенность конкретного кода.
1. Это невозможно читать (человеку).
2. Это невозможно тестировать.
Должно лучше читаться
Лучше не будет, будет меньше отступов.
Я хотел сказать именно то, что высказал "Irdis".
Эту кашу нужно отрефачить на несколько методов у которых не будет вложенных циклов и кучи if-ов.
Почему никто их комментаторов не говорит о тестировании?!
Вы попробуйте unit test к этому уЖОсу написать!
Если человек знает что такое unit-тестирование и сам пишет тесты на свой код, - он не может написать вышепоказанный код по определению!
берешь юнит Тестировщик, даешь ему задание "оттестировать", посылаешь в тыл багам...