CSDNRGY 2017-05-17 10:03 采纳率: 88.2%
浏览 1780
已采纳

为什么使用了List<T>,代码就无法编译?

如果不该成List
程序就会一直有警告
如何修改才是最符合规范的呢?

    public List<T> excelToList(String filePath, Class<T> cls) {
    //----------把这里的List<T>改成List-这段代码就可以正常执行了------------------------------
        List<T> result = new ArrayList<>();
        try {
            Workbook wb = new XSSFWorkbook(filePath);
            int sheetLength = wb.getNumberOfSheets();
            for (int i = 0; i < sheetLength; i++) {
                Sheet sheet = wb.getSheetAt(i);
                int rowLength = sheet.getPhysicalNumberOfRows();
                for (int j = 0; j < rowLength; j++) {
                    T t = cls.newInstance();
                    ComExcel comExcel = (ComExcel) t;
                    Row row = sheet.getRow(j);
                    int cellLength = row.getPhysicalNumberOfCells();
                    for (int k = 0; k < cellLength; k++) {
                        Cell cell = row.getCell(k);
                        String cellValue = cell.getStringCellValue();
                        Row title = sheet.getRow(0);
                        Cell titleCell = title.getCell(k);
                        String titleCellValue = titleCell.getStringCellValue();
                        Field[] fields = Emp.class.getDeclaredFields();
                        for (int l = 0; l < fields.length; l++) {
                            Field field = fields[l];
                            ExcelField ef = field.getDeclaredAnnotation(ExcelField.class);
                            String anTitle = ef.title();
                            if (titleCellValue.equals(anTitle)) {
                                Field[] declaredFields = Emp.class.getDeclaredFields();
                                for (Field f : declaredFields) {
                                    ExcelField declaredAnnotation = f.getDeclaredAnnotation(ExcelField.class);
                                    String extitle = declaredAnnotation.title();
                                    if (extitle.equals(titleCellValue)) {
                                        String fName = f.getName();
                                        fName = firstToUpper(fName);
                                        comExcel.getClass().getMethod("set" + fName, new Class[] { String.class })
                                                .invoke(comExcel, new Object[] { cellValue });
                                    }
                                }
                                continue;
                            }
                        }
                    }
                    //--------comExcel无法放入result-无法编译---------------------
                    result.add(comExcel);
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return result;
    }

  • 写回答

4条回答 默认 最新

  • CSDNRGY 2017-06-20 05:32
    关注

    这个问题问的有问题
    关闭提问

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥50 如何使用js去调用vscode-js-debugger的方法去调试网页
  • ¥15 376.1电表主站通信协议下发指令全被否认问题
  • ¥15 物体双站RCS和其组成阵列后的双站RCS关系验证
  • ¥15 复杂网络,变滞后传递熵,FDA
  • ¥20 csv格式数据集预处理及模型选择
  • ¥15 部分网页页面无法显示!
  • ¥15 怎样解决power bi 中设置管理聚合,详细信息表和详细信息列显示灰色,而不能选择相应的内容呢?
  • ¥15 QTOF MSE数据分析
  • ¥15 平板录音机录音问题解决
  • ¥15 请问维特智能的安卓APP在手机上存储传感器数据后,如何找到它的存储路径?