将 Datatable 转换为具有空值的对象
Posted
技术标签:
【中文标题】将 Datatable 转换为具有空值的对象【英文标题】:Converting Datatable to object with null values 【发布时间】:2022-01-07 22:55:06 【问题描述】:大家好,只是想知道我是否在这里遵循最佳做法。
我有如下步骤定义
public class StepDefinitions
@DataTableType
public Author authorEntry(Map<String, String> entry)
return new Author(
entry.get("firstName"),
entry.get("lastName"),
entry.get("famousBook"));
@Given("There are my favorite authors")
public void these_are_my_favourite_authors(List<Author> authors)
// step implementation
然后我的功能文件可能类似于
Feature: this is a feature
Scenario: this is a scenario
Given There are my favorite authors
|firstName| lastName |
| first | last |
Scenario: this is another scenario
Given There are my favorite authors
|firstName| lastName | famousBook |
| first | last | book |
因此,在第一步中,它将创建一个 Author 对象,但使用 FamousBook == null。
由于我正在创建用于 REST 请求的对象,而 jackson 将忽略空值,是否可以创建这样的对象?
【问题讨论】:
可以加Author
类代码吗?
【参考方案1】:
您的示例使用了错误的数据结构。你可以参考这个resource给出不同表类型的例子。
在你的情况下,你有一张桌子
|firstName| lastName |
| first | last |
并尝试将其解析为Map<String, String> entry
,这将产生以下映射:
[key1 = firstName, value1 = lastName]
[key2 = first, value2 = last]
如果您需要将其视为顶行中的标题,则需要将其解析为List<Map<String, String>>
【讨论】:
以上是关于将 Datatable 转换为具有空值的对象的主要内容,如果未能解决你的问题,请参考以下文章