我正在使用Apache POI来读取包含许多列的Excel文件。我有一个POJO,其中Excel表格中的每列都有一个字段。
如何使用Excel中的值填充我的POJO以实现最小的圈复杂度?
我已经实现了使用switch..case
来填充我的POJO的非常粗略的方法,但是这会导致紧密耦合并导致高的圈复杂度,在我的实现下面给出参考(这是我觉得非常脏的实现) :
// Iterate over cells in a row
for (Cell cell : row) {
cellValue = getCellValue(cell);
if (cellValue == null) {
continue;
}
// Populate model
data = populateModel(data, cell.getColumnIndex(), cellValue);
}
调用方法:
/*
* Populates pojo
*/
private MyData populateModel(MyData data, int columnIndex, Object cellValue) {
switch (columnIndex) {
case 0:
data.setAccount((long) cellValue);
break;
case 1:
data.setDocNumber((long) cellValue);
break;
case 2:
data.setType((String) cellValue);
break;
// more cases for subsequent excel columns
default:
// do nothing
}
return data;
}