语句Object [] [] data = new Object [] []是什么意思?

时间:2018-10-14 14:40:49

标签: java arrays selenium-webdriver apache-poi

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;
    }

}

说明: 我想从Java读取带有X列和Y行的Excel文件。 语句Object [] [] data = new Object [] []是什么意思? 谁能给我整个代码段的简单注释?

4 个答案:

答案 0 :(得分:1)

在此声明中

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];

如果要查看运行时的外观,建议您逐步调试程序中的代码。

答案 1 :(得分:0)

*编辑:此答案是在问题更改之前写的。

  

语句Object [] [] data = new Object [] []的含义是什么   Java?

表示对象的二维数组。什么是物体?对象是Java中的任何非原始数据类型。

注意:实例化时需要指定大小

示例:

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

答案 2 :(得分:0)

Object[][] data表示对象数组的数组。

例如:

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

构造一个包含3个元素的数组。 这3个元素中的每一个都是具有4个对象的数组。 但是,所有这些对象仍然是null

答案 3 :(得分:0)

"Object[][] data = new Object[][]"

"Object[][]"是对象的二维数组

"data"是此数组的名称

"new Object[][]",在这里,您对计算机说,该数组具有x行和y列的结构 举一个例子:

"Object[][] data = new Object[5][4]"->在这种情况下,您创建了一个包含5行4列的二维数组,它是这样的:

[][][][]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

但是您的计算机会更像这样:

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

在所有框中可能是一个对象