java - 我怎样才能定义一个 map 接受不同类型的节俭值(value)?

标签 java python object dictionary thrift

我用 thrift 定义了一个结构体:

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

问题是 dataMap ,我不仅要接受 string值,我可能还是想接受ListMap ,例如 map<string, list<string>> dataMap .换句话说,我想要一个类似于根 Object 的类型在 Java 中,object在 python 中

我可以这样做吗?

最佳答案

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

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

(因为我不确定联合实现在所有语言中是如何工作的,所以我会选择所有字段都是可选的结构)

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

然后:map<string, Object>

在 Thrift 中,您无法创建“全部接受”字段,因为它无法完全跨语言移植,而这是 Thrift 的关键功能之一。

关于java - 我怎样才能定义一个 map 接受不同类型的节俭值(value)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6553784/

相关文章:

java - JFrame最小化图标查询?

python - PANDAS - 绘制特定行并更改列的顺序

javascript - 如何拥有一个属于某物属性的类?

python - "for"循环中的计数函数

python - PySide2 找不到 Qt_5.15

c++ - 如何柯里化(Currying)对象上的方法以将其作为 C 风格回调传递?

javascript - 是否可以创建一个作为另一个对象的子集的对象,而不会丢失 JavaScript 中的引用?

java - 搜索服务失败时的设计模式

java - VariableDeclaratorId 和错误位置

java - Ubuntu中如何配置环境变量?