首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将Datatable转换为具有空值的对象

将Datatable转换为具有空值的对象
EN

Stack Overflow用户
提问于 2021-12-01 10:36:35
回答 1查看 24关注 0票数 1

大家好,我想知道我是不是在遵循最佳实践。

我有如下的步骤定义

代码语言:javascript
运行
复制
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
    }
}   

然后我的特征文件可能是这样的

代码语言:javascript
运行
复制
        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将忽略空值,所以可以像这样创建对象吗?

EN

回答 1

Stack Overflow用户

发布于 2021-12-02 15:54:14

您在示例中使用了错误的数据结构。您可以参考这个resource,给出不同表类型的示例。

在您的示例中,有一张表

代码语言:javascript
运行
复制
|firstName| lastName |
| first   | last     |

并尝试将其解析为Map<String, String> entry,这将产生以下映射:

代码语言:javascript
运行
复制
[key1 = firstName, value1 = lastName]
[key2 = first, value2 = last]

如果您需要将其视为第一行中的标题,则需要将其解析为List<Map<String, String>>

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70182686

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档