2

現在、通信のプロトコルとして Thrift を使用しています。Tree データ構造にマップするには、オブジェクト (Tree データ構造) を渡す必要があります。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 に答える