从Excel行填充POJO

时间:2017-10-10 01:30:02

标签: java apache-poi cyclomatic-complexity

我正在使用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;
    }

0 个答案:

没有答案