2013-05-07 4 views
3
List<Widget> widgets = widgetDao.retrieveWidgets(widgetBatchSize, 0); 
createWidgets(widgets); 

for (int offset = widgetBatchSize; widgets.size() >= widgetBatchSize; 
     offset += widgetBatchSize) { 
    widgets = widgetDao.retrieveWidgets(widgetBatchSize, offset); 
    createWidgets(widgets); 
} 

Непонятно, что я дублирую код обработки, продолжающийся до и внутри цикла. Как я могу избежать дублирования этого кода?Как избежать дублирования следующего кода?

+0

Что этот код на самом деле делать? – Philipp

+1

Начните с '0' в вашем цикле for вместо? – mellamokb

+6

Я думаю, что вы ищете вместо этого цикл 'do-while'. –

ответ

6

Как было отмечено в комментариях, используйте do...while петлю вместо:

List<Widget> widgets; 
int offset = 0; 
do { 
    widgets = widgetDao.retrieveWidgets(widgetBatchSize, offset); 
    createWidgets(widgets); 
    offset += widgetBatchSize; 
} while (widgets.size() >= widgetBatchSize); 
+0

+1. Вы были быстрее: D – Maroun

Смежные вопросы