2013-05-07 197 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