Java 如何避免重复以下代码? List widgets=widgetDao.retrieveWidgets(widgetBatchSize,0); 创建widgets(widgets); 对于(int offset=widgetBatchSize;widgets.size()>=widgetBatchSize; 偏移量+=widgetBatchSize){ widgets=widgetDao.retrieveWidgets(widgetBatchSize,偏移量); 创建widgets(widgets); }

Java 如何避免重复以下代码? List widgets=widgetDao.retrieveWidgets(widgetBatchSize,0); 创建widgets(widgets); 对于(int offset=widgetBatchSize;widgets.size()>=widgetBatchSize; 偏移量+=widgetBatchSize){ widgets=widgetDao.retrieveWidgets(widgetBatchSize,偏移量); 创建widgets(widgets); },java,Java,我在复制循环之前和循环内部的处理代码,这感觉是不对的。如何避免重复此代码?如注释中所述,使用do…while循环: List<Widget> widgets = widgetDao.retrieveWidgets(widgetBatchSize, 0); createWidgets(widgets); for (int offset = widgetBatchSize; widgets.size() >= widgetBatchSize; offset +=

我在复制循环之前和循环内部的处理代码,这感觉是不对的。如何避免重复此代码?

如注释中所述,使用
do…while
循环:

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;
做{
widgets=widgetDao.retrieveWidgets(widgetBatchSize,偏移量);
创建widgets(widgets);
偏移量+=widgetBatchSize;
}while(widgets.size()>=widgetBatchSize);

这段代码实际上是做什么的?在for循环中从
0
开始?我想你要找的是
do-while
循环。习惯它吧。您可能会浪费数小时来重新构建类似的内容,并且可能会在过程中引入错误。
List<Widget> widgets;
int offset = 0;
do {
    widgets = widgetDao.retrieveWidgets(widgetBatchSize, offset);
    createWidgets(widgets);
    offset += widgetBatchSize;
} while (widgets.size() >= widgetBatchSize);