docs: public <T> List<T> parse(Class<T> clazz) {
          List<T> resultList = null;
          try {
              Sheet sheet = workbook.getSheet(this.sheetName);
              if (null != sheet) {
                  resultList = new ArrayList<T>(sheet.getLastRowNum() - 1);
                  Row row = sheet.getRow(this.startRow);
  
                  Map<String, Field> fieldMap = new HashMap<String, Field>();
                  Map<String, String> titleMap = new HashMap<String, String>();
  
                  Field[] fields = clazz.getDeclaredFields();
                  //这里开始处理映射类型里的注解
                  for (Field field : fields) {
                      if (field.isAnnotationPresent(TitleCell.class)) {
                          TitleCell mapperCell = field.getAnnotation(TitleCell.class);
                          fieldMap.put(mapperCell.name(), field);
                      }
                  }
  
                  for (Cell title : row) {
                      CellReference cellRef = new CellReference(title);
                      titleMap.put(cellRef.getCellRefParts()[2], title.getRichStringCellValue().getString());
                  }
  
                  for (int i = this.startRow + 1; i <= sheet.getLastRowNum(); i++) {
                      T t = clazz.newInstance();
                      Row dataRow = sheet.getRow(i);
                      for (Cell data : dataRow) {
                          CellReference cellRef = new CellReference(data);
                          String cellTag = cellRef.getCellRefParts()[2];
                          String name = titleMap.get(cellTag);
                          Field field = fieldMap.get(name);
                          if (null != field) {
                              field.setAccessible(true);
                              getCellValue(data, t, field);
                          }
                      }
                      resultList.add(t);
                  }
              } else {
                  throw new RuntimeException("sheetName:" + this.sheetName + " is not exist");
              }
          } catch (InstantiationException e) {
              LOG.error("初始化异常", e);
          } catch (IllegalAccessException e) {
              LOG.error("初始化异常", e);
          } catch (ParseException e) {
              LOG.error("时间格式化异常:{}", e);
          } catch (Exception e) {
              LOG.error("其他异常", e);
          }
          return resultList;
      }