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);
}

我在循环之前和循环内复制正在进行的处理代码感觉不对。如何避免重复此代码?

4

1 回答 1

6

正如评论中所指出的,请改用do...while循环:

List<Widget> widgets;
int offset = 0;
do {
    widgets = widgetDao.retrieveWidgets(widgetBatchSize, offset);
    createWidgets(widgets);
    offset += widgetBatchSize;
} while (widgets.size() >= widgetBatchSize);
于 2013-05-07T21:10:08.287 回答