在Thrift中,在一個服務方法調用的上下文中,列表可以直接用作參數或返回類型。如果你需要明確的對象(反)序列化,有沒有一種方便的方法(在Java中)使用Thrift來(序列化)一個列表而不必將它作爲一個單獨的結構體包裝在節儉的IDL中?列表的二進制(反)序列化
更具體地說,假設我在舊貨定義
struct A {
1: required long x;
2: required long y;
}
我能(DE)通過定義
struct ListOfA {
1: required list<A> theList;
}
然後
ListOfA myList = ...
TSerializer serializer = new TSerializer();
byte[] mySerializedList = serializer.serialize(myList);
我的問題序列化的這些名單是否可以避免這個(稍微不雅觀的)額外結構的定義來僅包含這個名單。
下列不作爲TSerializer.serialize工作需要一個TBASE
List<A> myList = ... // List<A> instead of ListOfA
TSerializer serializer = new TSerializer();
byte[] mySerializedList = serializer.serialize(myList); //does not compile
使用的IDL一個typedef將已經幫助但這些都沒有轉化爲一個Java類似乎
typedef list<A> ListOfA
=> ListOfA未在生成的Java代碼中定義。
如果您認爲您發現了一個錯誤,您可以自由提交包含測試用例的JIRA票證。 – JensG