我有 Thrift 服务,其函数返回对象 ABC 列表:
struct ABC
{
1: string user_id;
2: string foo;
3: optional list<string> data;
}
list<ABC> getABCByUser(1:required string user_id, 2:i32 limit,3:i32 pageId, 4:string lastDocID)
throws (1:InvalidRequestException ire, 2:UnavailableException ue, 3:TimedOutException te)
服务器端由c++编写 我打印出服务器端返回的结果,在getABCByUser的响应中ABC实例中的数据不为空。
在java编写的客户端上如何: 我在java端的thrift生成的代码中设置了断点,ABC实例中的数据为空,其他字段不为空。 这看起来像是客户端的问题。知道如何解决这个问题吗?
提前致谢!
最佳答案
我也遇到和你一样的问题。我发现如果删除list前面的“可选”修饰符,返回值就会正确。但我不知道为什么我们不能在列表前使用“可选”。
关于java - 关于thrift函数返回列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18052957/