首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >oat++:将DTO放在DTO列表中

oat++:将DTO放在DTO列表中
EN

Stack Overflow用户
提问于 2021-10-27 13:50:21
回答 1查看 134关注 0票数 1

我正在尝试从多个DTO创建一个大的DTO,但我在将DTO放入列表中时遇到了很多麻烦。

我有两个DTO:

代码语言:javascript
复制
class TypeDocDto : public oatpp::DTO
{
    DTO_INIT(TypeDocDto, DTO)
    DTO_FIELD(Int32, code);
    DTO_FIELD(String, desciption);
};

class DocumentDto : public oatpp::DTO
{
    DTO_INIT(DocumentDto, DTO)
    DTO_FIELD(Int32, docNumber);
    DTO_FIELD(Int32, typeDocNb);
    DTO_FIELD(List<Object<TypeDocDto>>, typeDocs);
};

这里的想法是一个文档对象可以携带多个"TypeDoc“对象。

因此,我尝试创建一个TypeDocDto列表,然后将其添加到我的DocumentDto对象中。

代码语言:javascript
复制
auto dtoDoc = DocumentDto::createShared();
dtoDoc->docNumber = 0; //That value is whatever for now.
dtoDoc->typeDocNb = 3;

oatpp::List<oatpp::Object<TypeDocDto>> typeDocsList = {};
for (int i = 0; i < dtoDoc->typeDocNb; i++)
{
    auto typedocDto = TypeDocDto::createShared();
    typedocDto->code = i;
    typedocDto->desciption = "foo";
    typeDocsList->emplace(typeDocsList->end(), typedocDto);
}
dtoDoc->typeDocs = typeDocsList;

但是我无法将任何内容放入我的typeDocsList变量中。我添加的对象似乎总是为空。

我做错了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-10-27 15:09:19

已找到问题来源。

当涉及到声明list对象时,oat++看起来有点挑剔。

代码语言:javascript
复制
//*oatpp::List<oatpp::Object<TypeDocDto>> typeDocsList = {}* should become :
oatpp::List<oatpp::Object<TypeDocDto>> typeDocsList({});

这种精确的语法似乎是必需的。在那之后,我的代码就可以正常工作了。

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

https://stackoverflow.com/questions/69739930

复制
相关文章

相似问题

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