正在尝试将 List<List<>> 转换为 Object[][]

Attempting to convert List<List<>> to Object[][]

目前正在尝试将 List> 转换为 Object[][],以便从 excel sheet 中测试多个测试。这是我目前的代码。

@DataProvider(name = "Journey")
    public Object[][] generateJourneys() {
    Object[][] o = TestVariables.sourceSheet.toArray();
    return o;
    }    

DataProvider 最终应该看起来像

    {
       {"TableEntry1", "TableEntry2", "TableEntry3"},
       {"TableEntry12", "TableEntry13", "TableEntry14"}
    }

我有一个单独的方法来像这样提取 excel 文件。

List<List<String>> sourceSheet = ExcelFileHandler.readFromFile("src/resourceSheet.xls");

所以我可以像下面的代码一样拉取第一行,第二列

  sourceSheet.get(0).get(1);

怎么样

String[][] o = sourceSheet.stream()
    .map(l -> l.stream().toArray(String[]::new))
    .toArray(String[][]::new);

对于 sourceSheet 中的每个嵌套列表,将创建一个新数组,将其复制并添加到 o

如果我理解了这个问题,你需要将 List 的 List 转换为 Object[][]。

试试这个

Object[][] convert(List<List<Object>> lists) {
    Object[][] array = new Object[lists.size()][];
    for (int i = 0; i < array.length; i++) {
        array[i] = new Object[lists.get(i).size()];
        lists.get(i).toArray(array[i]);
    }
    return array;
}