Я получаю сообщение об ошибке, что я должен добавить оператор возврата, хотя я добавил оператор возврата - PullRequest
1 голос
/ 04 августа 2020
public static ArrayList<Double> readSheet(XSSFSheet spreadsheet) {
    int rows = spreadsheet.getPhysicalNumberOfRows();
        
    for (int i = 0; i <= i; i++) {
        XSSFRow row = spreadsheet.getRow(i);
        
        if (row == null) {
            continue;
        }
        
        int cells = row.getPhysicalNumberOfCells();
        ArrayList<Double> cellList = new ArrayList<>();
    
        for (int j = 0; j < cells; j++) { //遍历每一列
            XSSFCell cell = row.getCell(j);
            cell.setCellType(cell.CELL_TYPE_STRING);
                
            //new Double("1.0").intValue()
            Double cellValue = cell.getNumericCellValue();
            cellList.add(cellValue);        
        }
            
        return cellList;
    }
}

Может кто-нибудь помогите

Ответы [ 2 ]

2 голосов
/ 04 августа 2020

Вы должны предоставить оператор return за пределами вашего for l oop:

public static ArrayList<Double> readSheet(XSSFSheet spreadsheet) {
    int rows = spreadsheet.getPhysicalNumberOfRows();
    
    ArrayList<Double> cellList = new ArrayList<>();
    
    for (int i = 0; i <= i; i++) {
        ...
    }
    return cellList;
}

Поскольку компиляция не может решить, есть ли какой-либо запуск вашего for l oop и, следовательно, не гарантирует, что ваш будет достигнут оператор return.

Это также означает, что вам нужно объявить свою переменную cellList вне for l oop.

И, пожалуйста, также проверьте свое условие l oop . Хотя i<=i может всегда быть true, вы не хотите l oop бесконечно.

0 голосов
/ 04 августа 2020

Во-первых, ваше условие в for l oop неверно: i <= i всегда true.
Во-вторых, вы должны предоставить инструкцию возврата для всех веток. Например, если условие в for l oop будет false, в оставшемся теле функции нет операторов return.

Вам следует:

  • положить cellList перед for l oop
  • put return оператор за пределами for l oop
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...