2

我现在使用 Thrift 作为通信协议。我必须传递一个对象(树数据结构)来映射树数据结构。我想生成java代码。如何通过 Thrift 传输树数据结构,我通过 Tree 定义了一个对象,但 thrift 不允许这种方式,来自我的 thrift 文件:

struct MyObject {
1:i32 id,
2:i32 parentid,
3:string name,
4:list<MyObject> children
}

但是,我从 Thrift 收到此错误:尚未定义类型“MyObject”。有什么解决方法吗?感谢您的任何建议!

4

2 回答 2

4

你可以试试这个。

struct TreeNode {
1:i32 id,
2:i32 parentid,
3:string name,
4:list<i32> childrenIds
}

struct Tree {
1:i32 rootId,
2:map<i32,TreeNode> nodes,
}

使用这种方式,您可以获得可以解释为树的简单数据结构

于 2012-07-14T11:13:12.220 回答
1

Thrift 不允许递归: http ://grokbase.com/t/thrift/user/0984cqwxen/recursive-datatypes 可能的解决方法由 user537862 编写

于 2013-08-27T08:44:52.933 回答