Что означает оператор Object [] [] data = new Object [] []? - PullRequest
0 голосов
/ 14 октября 2018
public class TestUtil extends TestBase {

    TestUtil testUtil;
    static Workbook book;
    static Sheet sheet;

    public void switchToFrame() {
        driver.switchTo().frame("mainpanel");
    }

    public static String TESTDATA_SHEET_PATH = ".\\src\\main\\java\\com\\testData\\FreeCRMTestData.xlsx";

    public static Object[][] getTestData(String sheetName) {
        FileInputStream file = null;
        try {
            file = new FileInputStream(TESTDATA_SHEET_PATH);
        } catch (Exception e) {
            e.printStackTrace();
        }
        try {
            book = WorkbookFactory.create(file);
        } catch (Exception e) {
            e.printStackTrace();
        }

        // Get the Sheet.
        sheet = book.getSheet(sheetName);

        //getLastRowNum() Gets the number last row on the sheet.
        //getLastCellNum() Gets the index of the last cell contained in this row PLUS ONE.
        Object[][] data = new Object[sheet.getLastRowNum()][sheet.getRow(0).getLastCellNum()];
        for (int i = 0; i < sheet.getLastRowNum(); i++) {
            for (int k = 0; k < sheet.getRow(0).getLastCellNum(); k++) {
                data[i][k] = sheet.getRow(i + 1).getCell(k).toString();
            }
        }
        return data;
    }

}

Описание: - Я хочу прочитать файл Excel из Java с X столбцами и Y строками.Что означает оператор Object [] [] data = new Object [] []?Кто-нибудь может дать мне простые комментарии для всего фрагмента кода?

Ответы [ 4 ]

0 голосов
/ 14 октября 2018
"Object[][] data = new Object[][]"

"Object[][]" - это двумерный массив объектов

"data" - это имя этого массива

"new Object[][]", здесь вы говорите своему компьютеру, чтомассив имеет структуру из x строк и y столбцов, чтобы сделать пример:

"Object[][] data = new Object[5][4]" -> в этом случае вы создали массив из 5 строк и 4 столбцов, в 2 измерениях будет выглядеть так:

[][][][]row number 1 with 5 columns

[][][][]row number 2 with 5 columns

[][][][]row number 3 with 5 columns

[][][][]row number 4 with 5 columns

[][][][]row number 5 with 5 columns

но ваш компьютер увидит это так:

[][][][] [][][][] [][][][] [][][][] [][][][] 

и во всех коробках может быть объект

0 голосов
/ 14 октября 2018

Object[][] data означает массив массивов объектов.

Например:

Object[][] data = new Object[3][4];

создает массив из 3 элементов.Каждый из этих 3 элементов представляет собой массив из 4 объектов.Однако все эти объекты все еще null.

0 голосов
/ 14 октября 2018

В этом операторе

Object[][] data = new Object[sheet.getLastRowNum()][sheet.getRow(0).getLastCellNum()];

Создает массив ссылок на массивы ссылок на объекты.Первый массив предназначен для строк, а листовые массивы - для значений столбцов.

На самом деле добавляются только String объекты, поэтому я бы написал так:

int rows = sheet.getLastRowNum();
int columns = sheet.getRow(0).getLastCellNum();
String[][] data = new String[rows][columns];

Если выЕсли вы хотите посмотреть, как это выглядит во время выполнения, я предлагаю пройтись по коду в вашем отладчике.

0 голосов
/ 14 октября 2018

* Редактировать: этот ответ был написан до изменения вопроса.

Что означает выражение Object [] [] data = new Object [] [] в Java?

Это означает двумерный массив объектов.Что такое объект?Объект - это любой не примитивный тип данных в java.

Примечание: вам нужно будет указать размер при создании экземпляра

Пример:

String[][] foo = new String[2][3];

...