java-如何定义地图在节俭中接受其他类型的值?

我用节俭定义了一个结构:

struct QuerySetRecord {
    1:string recordId,
    2:string crawlerName,
    3:string recordType,
    4:map<string,string> dataMap,
    5:i16 priority,
}

问题是dataMap,我不仅要接受字符串值,我可能仍想接受List或Map,例如map< string,list< string>数据图.换句话说,我想要一个类型,例如Java中的root Object,Python中的object

我可以这样做吗?

解决方法:

您将必须创建自己的Object并列出其中的所有可能的类.

union Object {
   1: string str;
   2: i32 number32;
}

(因为我不确定在所有语言中联合实现的工作方式,我会选择带有所有字段可选的struct)

struct Object {
   1: optional string str;
   2: optional i32 number32;
}

然后:map< string,Object>

在Thrift中,您无法创建“ accept all”(全部接受)字段,因为它不能跨语言完全移植,这是Thrift的主要功能之一.

上一篇:Cocos2d-x教程(26)-Cocos2d-x + Lua脚本实现大地图缩放功能


下一篇:java-遍历Maven中的特定资源文件以生成源