Struct apache thrift无法生成递归结构

Struct apache thrift无法生成递归结构,struct,tree,thrift,Struct,Tree,Thrift,我想用ApacheThrift表示一个标准的树结构,但我遇到了 以下问题: [ERROR:/path_to_project/thrift/service.thrift:31] (last token was 'TCategoryTree') Type "TCategoryTree" has not been defined. 以下是我的节俭结构: struct TCategory { 1: required string name } struct TCategoryTree {

我想用ApacheThrift表示一个标准的树结构,但我遇到了 以下问题:

[ERROR:/path_to_project/thrift/service.thrift:31] (last token was 'TCategoryTree')
Type "TCategoryTree" has not been defined.
以下是我的节俭结构:

struct TCategory {
    1: required string name
}

struct TCategoryTree {
    1: required TCategory element,
    2: optional list<TCategoryTree> children
}
struct目录{
1:必需的字符串名称
}
结构TCategoryTree{
1:必需的t类别元素,
2:可选列表子项
}
第31行是
2:可选列表子项
,我在其中定义了一个字段 这和我现在定义的类型是一样的

可能是apache thrift不支持递归结构,还是我在做什么 这里有什么错误吗


编辑:我正在使用版本0.9.0是的,不幸的是节俭还不允许递归结构。对于这一限制,有一些变通方法,例如,在传输数据结构时将其展平。在大多数情况下,这是可行的,尽管它需要双方都有一些额外的代码

下面是一个很好的例子:


更新

目前的节俭发展干线暂时支持这一点。请小心,因为它允许无限的引用循环(A引用B引用A…)在尝试序列化时导致堆栈溢出