Как я могу вернуть результаты метода несколько раз? - PullRequest
0 голосов
/ 27 августа 2018

Я знаю, что на это должен быть простой ответ, но я в тупике.Я также не знаю, правильна ли формулировка, которую я использую для этого вопроса.

Итак, для проекта: я оцениваю ряд документов Excel по строкам и ячейкам за ячейкой и присваиваю найденные данныек объекту котенка, который имеет имя, идентификатор животного и адрес.

В методе printAddress () я хочу вернуть адрес для каждого объекта Kitten в виде строки, но я возвращаю только последний адрес для последнего Kitten, указанного в документе ввода Excel.Если возможно, я бы хотел избежать использования вложенных циклов for.

Должен ли я подумать о создании массива размером с количество котят, сохранении их адресов и возвращении этого в виде строки?

Код:

     public class ReadExcelDoc {
        public String printAddress(){
         String printedAddress = "";

         try {
            FileInputStream kittenFile = new FileInputStream(new 
            File("./IntakeNotes.xlsx")
            XSSFWorkbook wb = new XSSFWorkbook(kittenFile);
            XSSFSheet sheet = wb.getSheetAt(0);   

            ArrayList<Kitten> kittenList = new ArrayList<Kitten>();
            for (int i= sheet.getFirstRowNum() + 1; i<= 
                   sheet.getLastRowNum(); i++) {
             Kitten k = new Kitten();
             Row r = sheet.getRow(i);

            for (int j = r.getFirstCellNum(); j<= r.getLastCellNum(); 
                 j++) {
                Cell c = r.getCell(j);

             if (j==0) k.setName(c.getStringCellValue());

              ...

             if (j==2) k.setAddress(c.getStringCellValue());

          }
          kittenList.add(k);
       }

       for (Kitten kit: kittenList) {
            printedAddress = kit.getAddress();         
        }
    wb.close();
    }
     catch(Exception e) { e.printStackTrace();}

    return printedAddress;
   }}
...