2013-05-07 130 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 2013-05-07 21:06:29

+1

從for循環中的'0'開始? – mellamokb 2013-05-07 21:06:50

+6

我認爲你正在尋找的是一個'do-while'循環。 – 2013-05-07 21:06:56

回答

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 2013-05-07 21:11:35