这个问题相当笼统。我将在这里进一步解释。 所以我在黄瓜中有这样的步骤: 并期望结果为“status_code”和响应“200” 参数是字符串,稍后用于创建以编程方式创建的两行数据表。
NOT in this way: |status_code|
| 200 |
表格是这样创建的:
public DataTable createDataTable(String columnName, String rowName) {
List<List<String>> dataTableList = new ArrayList<>();
List<String> columns = Arrays.asList(columnName);
List<String> rows = Arrays.asList(rowName);
dataTableList.add(columns);
dataTableList.add(rows);
return DataTable.create(dataTableList);
}
在更新到 7.3.4 之前,这种方法非常有效。但现在我收到多个错误 ,当我尝试使用以这种方式创建的表时。
错误提示:数据表是在没有转换器的情况下创建的。
当我调试代码时,我可以看到 TableConverter 确实是空的。这正是问题所在:我不明白如何填充以编程方式创建的 DataTabble 的转换器部分。 有什么想法吗?
我自己回答我的问题。解决方案相当简单。我只是深入研究代码并找到了解释。 DataTable 本身需要两部分:
因此,将这些行添加到代码中并更新以前的函数可以解决问题。这些是行:
private static final DataTableTypeRegistry registry = new DataTableTypeRegistry(Locale.ENGLISH);
private static final DataTable.TableConverter tableConverter = new DataTableTypeRegistryTableConverter(registry);
public DataTable createDataTable(String columnName, String rowName) {
List<List<String>> dataTableList = new ArrayList<>();
List<String> columns = Arrays.asList(columnName);
List<String> rows = Arrays.asList(rowName);
dataTableList.add(columns);
dataTableList.add(rows);
return DataTable.create(dataTableList,tableConverter);
}
基本上,两行代码和函数中的更新就可以解决问题。 只是不清楚 DataTable 需要哪个转换器。