【发布时间】:2021-06-25 21:02:42
【问题描述】:
我有这个方法可以在文档中显示一组对象。
public File generateODSFileWithTemplate(String fileName, Object[][] lignes, File template) throws FileNotFoundException, IOException, JDOMException, TemplateException {
final Sheet sheet = SpreadSheet.createFromFile(template).getSheet(0);
sheet.setRowCount(lignes.length);
int column = 0;
int row = 0;
//Iterating through the array of Object
for(Object[] rowObj : lignes){
for(Object colObj : rowObj){
sheet.setValueAt(rowObj[column],column,row );
column++;
}
row++;
column = 0;
}
File outFile = new File(fileName);
sheet.getSpreadSheet().saveAs(outFile);
return outFile;
}
有没有办法使用流而不是 for 循环?
【问题讨论】:
-
这是不可取的,因为您将使用流来操作流处理之外的现有对象(在某些情况下可能会产生不良副作用)。而
column increment可能会产生effective final问题。现在我并不是说这是不可能的,但你这样做的方式并没有错(假设它当然达到了预期的结果)。 -
此外,流应该倾向于使过程更清楚地反映问题陈述。就像在地图中对项目进行分组一样。我认为流式解决方案会增加不必要的复杂性,并且可以说往往会使水变得浑浊。
标签: java arrays for-loop java-8 java-stream