谷歌原型缓冲区 如何在原型文件中定义列表列表?
2022-09-03 00:10:19
我有一个带有列表字段列表的类,如下所示:
public class MyClass{
private List<List<String>>
}
如何在原型文件中定义它?
我有一个带有列表字段列表的类,如下所示:
public class MyClass{
private List<List<String>>
}
如何在原型文件中定义它?
将这两者结合起来,我们可以得到:
message ListOfListsOfStrings {
repeated ListOfStrings listOfStrings=1;
}
message ListOfStrings {
repeated string strings=1;
}
然后,您可以在您的原型中使用ListOfListsOfStrings消息。
我想知道同样的事情,我了解到我可以:
stream
repeated
如下图所示:
syntax = "proto3";
import "google/protobuf/empty.proto";
message Dummy {
string foo = 1;
string bar = 2;
}
message DummyList {
repeated Dummy dummy = 1;
}
service DummyService {
rpc getDummyListWithStream(google.protobuf.Empty) returns (stream Dummy) {}
rpc getDummyListWithRepeated(google.protobuf.Empty) returns (DummyList) {}
}
那么,哪一个呢?
通常,如果您的用例允许客户端一次处理一个传入消息,则流是更好的选择。如果您的客户端只是在所有消息到达之前阻塞,然后以聚合方式处理它们,则重复字段可能是合适的,但即使在这种情况也可以正常工作,除了失去一些潜在的可压缩性。
从这里引用: https://groups.google.com/forum/#!topic/grpc-io/F23vXwilTq0